all: default 2001 2005 2001s 2005s

default : vpi_presentation_vlog.v ./vpi_presentation_app.c
	echo "++++++++++++++++++++ default - no macro defined - start"
	gcc  -c -g -fPIC -DLINUX -I./ ./vpi_presentation_app.c
	gcc -shared -g -fPIC -Wl,-Bsymbolic,--allow-shlib-undefined,--export-dynamic -o vpi_presentation_app.sl vpi_presentation_app.o
	rm -rf work
	vlib work
	vlog vpi_presentation_vlog.v
	vsim -c -pli ./vpi_presentation_app.sl -do "run 1;quit -f" top
	echo "------------------- default - no macro defined - finish"

2001 : vpi_presentation_vlog.v ./vpi_presentation_app.c
	echo "++++++++++++++++++++ 2001 macro defined externally at compilation - start"
	gcc  -c -g -fPIC -DVPI_VERSION_COMPATIBILITY_REQUEST_2001 -DLINUX -I./ ./vpi_presentation_app.c
	gcc -shared -g -fPIC -Wl,-Bsymbolic,--allow-shlib-undefined,--export-dynamic -o vpi_presentation_app.sl vpi_presentation_app.o
	rm -rf work
	vlib work
	vlog vpi_presentation_vlog.v
	vsim -c -pli ./vpi_presentation_app.sl -do "run 1;quit -f" top
	echo "------------------- 2001 macro defined externally at compilation - finish"


2005 : vpi_presentation_vlog.v
	echo "++++++++++++++++++++ 2005 macro defined externally at compilation - start"
	gcc  -c -g -fPIC  -DVPI_VERSION_COMPATIBILITY_REQUEST_2005 -DLINUX -I./ ./vpi_presentation_app.c
	gcc -shared -g -fPIC -Wl,-Bsymbolic,--allow-shlib-undefined,--export-dynamic -o vpi_presentation_app.sl vpi_presentation_app.o
	rm -rf work
	vlib work
	vlog vpi_presentation_vlog.v
	vsim -c -pli ./vpi_presentation_app.sl -do "run 1;quit -f" top
	echo "------------------- 2005 macro defined externally at compilation - finish"

2001s : vpi_presentation_vlog.v ./vpi_presentation_app_2001.c
	echo "++++++++++++++++++++ 2001 macro defined in source code - start"
	gcc  -c -g -fPIC -DLINUX -I./ ./vpi_presentation_app_2001.c
	gcc -shared -g -fPIC -Wl,-Bsymbolic,--allow-shlib-undefined,--export-dynamic -o vpi_presentation_app.sl vpi_presentation_app_2001.o
	rm -rf work
	vlib work
	vlog vpi_presentation_vlog.v
	vsim -c -pli ./vpi_presentation_app.sl -do "run 1;quit -f" top
	echo "------------------- 2001 macro defined in source code - finish"


2005s : vpi_presentation_vlog.v ./vpi_presentation_app_2005.c
	echo "++++++++++++++++++++ 2005 macro defined in source code - start"
	gcc  -c -g -fPIC  -DLINUX -I./ ./vpi_presentation_app_2005.c
	gcc -shared -g -fPIC -Wl,-Bsymbolic,--allow-shlib-undefined,--export-dynamic -o vpi_presentation_app.sl vpi_presentation_app_2005.o
	rm -rf work
	vlib work
	vlog vpi_presentation_vlog.v
	vsim -c -pli ./vpi_presentation_app.sl -do "run 1;quit -f" top
	echo "------------------- 2005 macro defined in source code - finish"


clean :
	rm -rf work
	rm -rf *.sl
	rm -rf core.*
	rm -rf *.o
	rm -rf transcript
	rm -rf *~
	rm -rf *.wlf
