$ ls
ASMBLR Makefile.rules docs main.cpp notes tests
Makefile Makefile.version include main.d pkg utilities
Makefile.ddk common io main.o processor vsim
Makefile.defs data lib mp tapes
How does your approach deal with subdirectories?
$ ls io/dlps
5n_dlp.cpp file_tape_unit.cpp qwik_dlp.h
5n_dlp.d file_tape_unit.d qwik_dlp.o
5n_dlp.h file_tape_unit.h scsi_disk_dlp.cpp
5n_dlp.o file_tape_unit.o scsi_disk_dlp.d
Makefile fips_tape_dlp.cpp scsi_disk_dlp.h
Makefile.ddk fips_tape_dlp.d scsi_disk_dlp.o
buffered_printer_dlp.cpp fips_tape_dlp.h scsi_tape_dlp.cpp
buffered_printer_dlp.d fips_tape_dlp.o scsi_tape_dlp.d
buffered_printer_dlp.h gcr_dlp.cpp scsi_tape_dlp.h
buffered_printer_dlp.o gcr_dlp.d scsi_tape_dlp.o
card_punch_dlp.cpp gcr_dlp.h ssp.cpp
card_punch_dlp.d gcr_dlp.o ssp.d
card_punch_dlp.h ht_dcp_dlp.cpp ssp.h
card_punch_dlp.o ht_dcp_dlp.d ssp.o
card_reader_dlp.cpp ht_dcp_dlp.h ssp_dlp.cpp
card_reader_dlp.d ht_dcp_dlp.o ssp_dlp.d
card_reader_dlp.h ht_dpdc_dlp.cpp ssp_dlp.h
card_reader_dlp.o ht_dpdc_dlp.d ssp_dlp.o
card_unit.cpp ht_dpdc_dlp.h st_tape_unit.cpp
card_unit.d ht_dpdc_dlp.o st_tape_unit.d
card_unit.h htseq_dlp.cpp st_tape_unit.h
card_unit.o htseq_dlp.d st_tape_unit.o
disk_unit.cpp htseq_dlp.h tape_unit.cpp
disk_unit.d htseq_dlp.o tape_unit.d
disk_unit.h iocb.cpp tape_unit.h
disk_unit.o iocb.d tape_unit.o
dlp.cpp iocb.o telcom_dlp.cpp
dlp.d isc_dlp.cpp telcom_dlp.d
dlp.o isc_dlp.d telcom_dlp.h
file_card_unit.cpp isc_dlp.h telcom_dlp.o
file_card_unit.d isc_dlp.o train_printer_dlp.cpp
file_card_unit.h odt_dlp.cpp train_printer_dlp.d
file_card_unit.o odt_dlp.d train_printer_dlp.h
file_disk_unit.cpp odt_dlp.h train_printer_dlp.o
file_disk_unit.d odt_dlp.o uniline_dlp.cpp
file_disk_unit.h printer_unit.cpp uniline_dlp.d
file_disk_unit.o printer_unit.h uniline_dlp.h
file_printer_unit.cpp qwik_dlp.cpp uniline_dlp.o
file_printer_unit.h qwik_dlp.d
A fragment of io/dlps/Makefile:
libdlp_fips_tape.so: fips_tape_dlp.o dlp.o
@echo " BUILD $(LIB)/$@"
$(HUSHCOMPILE)$(CC) -o $(LIB)/$@ $(SOLDFLAGS) $+ -lc
libdlp_htseq.so: htseq_dlp.o disk_unit.o file_disk_unit.o dlp.o
@echo " BUILD $(LIB)/$@"
$(HUSHCOMPILE)$(CC) -o $(LIB)/$@ $(SOLDFLAGS) $+ -lc
libdlp_uniline.so: uniline_dlp.o dlp.o $(LIBCOMMON)
@echo " BUILD $(LIB)/$@"
$(HUSHCOMPILE)$(CC) -o $(LIB)/$@ $(SOLDFLAGS) $+
libdlp_odt.so: odt_dlp.o dlp.o $(LIBCOMMON)
@echo " BUILD $(LIB)/$@"
$(HUSHCOMPILE)$(CC) -o $(LIB)/$@ $(SOLDFLAGS) $+ -lc
libdlp_scsi_disk.so: scsi_disk_dlp.o disk_unit.o file_disk_unit.o dlp.o
@echo " BUILD $(LIB)/$@"
$(HUSHCOMPILE)$(CC) -o $(LIB)/$@ $(SOLDFLAGS) $+ -lc
libdlp_scsi_tape.so: scsi_tape_dlp.o tape_unit.o file_tape_unit.o dlp.o st_tape_unit.o
@echo " BUILD $(LIB)/$@"
$(HUSHCOMPILE)$(CC) -o $(LIB)/$@ $(SOLDFLAGS) $+
libdlp_gcr.so: gcr_dlp.o dlp.o tape_unit.o file_tape_unit.o st_tape_unit.o
@echo " BUILD $(LIB)/$@"
$(HUSHCOMPILE)$(CC) -o $(LIB)/$@ $(SOLDFLAGS) $+ -lc
libdlp_5n.so: 5n_dlp.o disk_unit.o file_disk_unit.o dlp.o
@echo " BUILD $(LIB)/$@"
$(HUSHCOMPILE)$(CC) -o $(LIB)/$@ $(SOLDFLAGS) $+ -lc
libdlp_reader.so: card_reader_dlp.o card_unit.o file_card_unit.o dlp.o
@echo " BUILD $(LIB)/$@"
$(HUSHCOMPILE)$(CC) -o $(LIB)/$@ $(SOLDFLAGS) $+ -lc
libdlp_tpr.so: train_printer_dlp.o dlp.o
@echo " BUILD $(LIB)/$@"
$(HUSHCOMPILE)$(CC) -o $(LIB)/$@ $(SOLDFLAGS) $+ -lc