VERSION=0.1 TIMESTAMP=$(shell date +"%02m%02d%02y-%02k.%02M") DATE=$(shell date) DISTNAME=sebae-$(TIMESTAMP) SRCDIR=$(PWD) OBJFILES=assembly.o bytecode.o module.o pipe.o sebae.o vm.o LIBS= -lm #OpenBSD #LIBS= -lm -ldl #Linux CC=cc -g -pedantic all: sa sd svm testmodule.so assembly.o: sebae.h assembly.c $(CC) -c assembly.c -o assembly.o bytecode.o: sebae.h bytecode.c $(CC) -c bytecode.c -o bytecode.o module.o: sebae.h module.c $(CC) -c module.c -o module.o pipe.o: sebae.h pipe.c $(CC) -c pipe.c -o pipe.o sa.o: sebae.h header sa.c $(CC) -c sa.c -o sa.o sd.o: sebae.h header sd.c $(CC) -c sd.c -o sd.o sebae.o: sebae.h sebae.c $(CC) -c sebae.c -o sebae.o svm.o: sebae.h header svm.c $(CC) -c svm.c -o svm.o testmodule.so: sebae.h testmodule.c $(CC) testmodule.c -o testmodule.so -shared vm.o: sebae.h vm.c $(CC) -c vm.c -o vm.o header: # Update build.h ./newbuildnum echo "#define VERSION \"$(VERSION)\"" >> build.h echo "#define BUILDDATE \"$(DATE)\"" >> build.h sa: sa.o $(OBJFILES) $(CC) -o sa sa.o $(OBJFILES) $(LIBS) sd: sd.o $(OBJFILES) $(CC) -o sd sd.o $(OBJFILES) $(LIBS) svm: svm.o $(OBJFILES) $(CC) -o svm svm.o $(OBJFILES) $(LIBS) testsa: sa rm -f out.seb ./sa test.sa out.seb testsd: sd rm -f out.sa out.sa.bin ./sd test.seb out.sa testsvm: svm ./svm test.seb test: testsa testsd testsvm @echo All tests passed. clean: rm -f sa sd svm *.o *~ *.so *.map out.seb out.sa out.sa.bin dist: clean mkdir ../$(DISTNAME) cp -R * ../$(DISTNAME) mv ../$(DISTNAME) . tar czf $(DISTNAME).tgz $(DISTNAME) rm -rf $(DISTNAME) mv $(DISTNAME).tgz ../files/