# All library dependency files (.d)
DEPFILES := $(patsubst %.c,%.d,$(SRCFILES))
# All test driver dependency files (_t.d)
-TSTDEPFILES := $(patsubst %.c,%_t.d,$(TSTFILES))
+TSTDEPFILES := $(patsubst %,%.d,$(TSTFILES))
# All regression test driver dependency files (_r.d)
-REGDEPFILES := $(patsubst %.c,%_r.d,$(REGFILES))
+REGDEPFILES := $(patsubst %,%.d,$(REGFILES))
# All files belonging to the source distribution
ALLFILES := $(SRCFILES) $(HDRFILES) $(AUXFILES)
+# TODO: This must be possible without four discrete steps.
# All files in platform/$(PLATFORM)/functions/_PDCLIB (for development only)
PATCHFILES1 := $(shell ls platform/$(PLATFORM)/functions/_PDCLIB/*.c)
# All files in platform/$(PLATFORM)/functions/stdlib (for development only)
PATCHFILES2 := $(shell ls platform/$(PLATFORM)/functions/stdlib/*.c)
# All files in platform/$(PLATFORM)/functions/stdio (for development only)
PATCHFILES3 := $(shell ls platform/$(PLATFORM)/functions/stdio/*.c)
+# All files in platform/$(PLATFORM)/functions/signal (for development only)
+PATCHFILES4 := $(shell ls platform/$(PLATFORM)/functions/signal/*.c)
WARNINGS := -Wall -Wextra -pedantic -Wno-unused-parameter -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs -Winline -Wno-long-long -fno-builtin
CFLAGS := -g -std=c99 -I./internals -I./testing $(WARNINGS) $(USERFLAGS)
@echo
test: functions/$(FILE)
+ echo $(TSTDEPFILES)
functions/$(FILE)
tests: testdrivers
regtestdrivers: $(REGFILES)
@echo
--include $(DEPFILES) $(TSTDEPFILES) $(REGDEPFILES)
+#-include $(DEPFILES) $(TSTDEPFILES) $(REGDEPFILES)
clean:
@for file in $(OBJFILES) $(DEPFILES) $(TSTFILES) $(TSTDEPFILES) $(REGFILES) $(REGDEPFILES) pdclib.a pdclib.tgz scanf_testdata_*; do if [ -f $$file ]; then rm $$file; fi; done
links:
@echo "Linking platform/$(PLATFORM)..."
@cd internals && ln -s ../platform/$(PLATFORM)/internals/_PDCLIB_config.h
- @cd includes && ln -s ../platform/$(PLATFORM)/includes/float.h
- @cd testing && ln -s ../platform/$(PLATFORM)/testing/printf_reference.txt
+ @cd includes && ln -s ../platform/$(PLATFORM)/includes/float.h && ln -s ../platform/$(PLATFORM)/includes/signal.h
@cd functions/_PDCLIB && for file in $(PATCHFILES1); do basfile=`basename $$file`; if [ ! -f $$basfile ]; then ln -s `ls ../../$$file` .; fi; done
@cd functions/stdlib && for file in $(PATCHFILES2); do basfile=`basename $$file`; if [ ! -f $$basfile ]; then ln -s `ls ../../$$file` .; fi; done
@cd functions/stdio && for file in $(PATCHFILES3); do basfile=`basename $$file`; if [ ! -f $$basfile ]; then ln -s `ls ../../$$file` .; fi; done
+ @cd functions/signal && for file in $(PATCHFILES4); do basfile=`basename $$file`; if [ ! -f $$basfile ]; then ln -s `ls ../../$$file` .; fi; done
unlink:
@echo "Unlinking platform files..."
@if [ -f internals/_PDCLIB_config.h ]; then rm internals/_PDCLIB_config.h; fi
@if [ -f includes/float.h ]; then rm includes/float.h; fi
- @if [ -f testing/printf_reference.txt ]; then rm testing/printf_reference.txt; fi
@cd functions/_PDCLIB && for file in $(PATCHFILES1); do basfile=`basename $$file`; if [ -f $$basfile ]; then rm $$basfile; fi; done
@cd functions/stdlib && for file in $(PATCHFILES2); do basfile=`basename $$file`; if [ -f $$basfile ]; then rm $$basfile; fi; done
@cd functions/stdio && for file in $(PATCHFILES3); do basfile=`basename $$file`; if [ -f $$basfile ]; then rm $$basfile; fi; done