PACKAGE = quadmachine #VERSION = 0.4 VERSION = snapshot-$(shell date +'%Y-%m-%d') SYSTEM=posix CC = gcc CFLAGS = -ansi -pedantic \ -Wall -W -Wshadow -Wwrite-strings -Wstrict-prototypes \ -Wmissing-prototypes -Wmissing-declarations -g \ -DPACKAGE='"$(PACKAGE)"' -DVERSION='"$(VERSION)"' ifeq ($(SYSTEM),posix) CFLAGS += -D_POSIX_C_SOURCE EXES = assembler simulator endif ifeq ($(SYSTEM),mingw) CC = i586-mingw32msvc-gcc EXES = assembler.exe simulator.exe endif .PHONY: all clean test-assembler test-simulator test assemble-files assemble-errors all: $(EXES) %.exe : % ln -f $< $@ assembler: assembler.o symboltable.o simulator: simulator.o segment.o disassembly.o time.o assembler.o: assembler.c types.h qm-ds.h symboltable.h util.h errors.h simulator.o: simulator.c types.h qm-ds.h syscalls.h segment.h util.h errors.h disassembly.h time.h symboltable.o: symboltable.c symboltable.h types.h util.h errors.h segment.o: segment.c segment.h types.h errors.h disassembly.o: disassembly.c disassembly.h types.h qm-ds.h syscalls.h time.o : time.c time.h errors.h clean : $(RM) assembler simulator *.o *.exe test-assembler: assembler ./assembler test.s -o a.out ls -l a.out test-simulator: simulator test-assembler ./simulator a.out test: test-simulator assemble-files: assembler find tests/ops tests/ams -name '*.s'| while read -r file; do ./assembler "$$file" -o a.out || exit; done assemble-errors: assembler find tests/errors -name '*.s'| while read -r file; do ./assembler "$$file" -o a.out && exit 10; done ; true MINGDLL_ORIG = /usr/share/doc/mingw32-runtime/mingwm10.dll.gz MINGDLL = mingwm10.dll dist : $(RM) $(PACKAGE)-$(VERSION).bin.mingw.zip $(RM) $(PACKAGE)-$(VERSION).src.zip $(RM) -r $(PACKAGE)-$(VERSION) $(RM) $(MINGDLL) mkdir $(PACKAGE)-$(VERSION) mkdir $(PACKAGE)-$(VERSION)/examples set -e; for f in *.c *.h; do ln $$f $(PACKAGE)-$(VERSION); done set -e; for f in examples/*.s; \ do \ ln $$f $(PACKAGE)-$(VERSION)/examples; \ done cp -lr tests/ $(PACKAGE)-$(VERSION) ln GNUmakefile $(PACKAGE)-$(VERSION) ln LICENSES.txt $(PACKAGE)-$(VERSION) ln License-Blurb $(PACKAGE)-$(VERSION) ln PROJECT $(PACKAGE)-$(VERSION) ln AUTHORS $(PACKAGE)-$(VERSION) ln README $(PACKAGE)-$(VERSION) ln README.Windows $(PACKAGE)-$(VERSION) zip -9r $(PACKAGE)-$(VERSION).examples.zip \ $(PACKAGE)-$(VERSION)/examples zip -9r $(PACKAGE)-$(VERSION).src.zip $(PACKAGE)-$(VERSION) tar zcf $(PACKAGE)-$(VERSION).src.tar.gz $(PACKAGE)-$(VERSION) $(MAKE) -C $(PACKAGE)-$(VERSION) SYSTEM=mingw cp -f $(MINGDLL_ORIG) . gzip -d $(MINGDLL).gz zip -9j $(PACKAGE)-$(VERSION).bin.mingw.zip \ $(MINGDLL) \ $(PACKAGE)-$(VERSION)/assembler.exe \ $(PACKAGE)-$(VERSION)/simulator.exe \ LICENSES.txt README.Windows README AUTHORS