205 lines
		
	
	
	
		
			5.8 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			205 lines
		
	
	
	
		
			5.8 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| #
 | |
| # Makefile
 | |
| #
 | |
| # Building the binary from sources.
 | |
| #
 | |
| # ISC License
 | |
| #
 | |
| # Copyright 2023 Brmlab, z.s.
 | |
| # Dominik Pantůček <dominik.pantucek@trustica.cz>
 | |
| #
 | |
| # Permission to use, copy, modify, and/or distribute this software
 | |
| # for any purpose with or without fee is hereby granted, provided
 | |
| # that the above copyright notice and this permission notice appear
 | |
| # in all copies.
 | |
| # 
 | |
| # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
 | |
| # WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
 | |
| # WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
 | |
| # AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR
 | |
| # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
 | |
| # OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
 | |
| # NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
 | |
| # CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | |
| #
 | |
| 
 | |
| .PHONY: default
 | |
| default: imports
 | |
| 
 | |
| .PHONY: shared
 | |
| shared: bbstool
 | |
| 
 | |
| .PHONY: static
 | |
| static: bbstool-static
 | |
| 
 | |
| .PHONY: all
 | |
| all: imports shared static
 | |
| 
 | |
| CSC=csc
 | |
| 
 | |
| BBSTOOL-DEPS=bbstool.scm testing.import.scm listing.import.scm		\
 | |
| 	dictionary.import.scm month.import.scm period.import.scm	\
 | |
| 	ansi.import.scm command-line.import.scm				\
 | |
| 	members-base.import.scm utils.import.scm primes.import.scm	\
 | |
| 	member-record.import.scm configuration.import.scm		\
 | |
| 	progress.import.scm table.import.scm cards.import.scm		\
 | |
| 	member-parser.import.scm member-print.import.scm
 | |
| 
 | |
| BBSTOOL-SOURCES=bbstool.scm testing.scm listing.scm dictionary.scm	\
 | |
| 	month.scm period.scm ansi.scm command-line.scm			\
 | |
| 	members-base.scm utils.scm primes.scm member-record.scm		\
 | |
| 	configuration.scm progress.scm table.scm cards.scm		\
 | |
| 	member-print.scm member-parser.scm
 | |
| 
 | |
| BBSTOOL-OBJS=testing.o listing.o month.o period.o ansi.o dictionary.o	\
 | |
| 	 command-line.o members-base.o utils.o primes.o			\
 | |
| 	 member-record.o configuration.o progress.o table.o cards.o	\
 | |
| 	 member-print.o
 | |
| 
 | |
| BBSTOOL-SHARED=testing.so listing.so month.so period.so ansi.so		\
 | |
| 	 dictionary.so command-line.so members-base.so utils.so		\
 | |
| 	 primes.so member-record.so configuration.so progress.so	\
 | |
| 	 table.so cards.so member-print.so
 | |
| 
 | |
| .PHONY: imports
 | |
| imports: $(BBSTOOL-DEPS)
 | |
| 
 | |
| bbstool: $(BBSTOOL-DEPS)
 | |
| 	$(CSC) -o $@ $<
 | |
| 
 | |
| bbstool-static: $(BBSTOOL-DEPS)
 | |
| 	$(CSC) -static -o $@ $(BBSTOOL-SOURCES)
 | |
| 
 | |
| .PHONY: clean
 | |
| clean:
 | |
| 	rm -f *.c *.so *.link *.o *.import.scm bbstool bbstool-static
 | |
| 
 | |
| ################################################################
 | |
| # Module static and shared object and import source compilation
 | |
| 
 | |
| %.o: %.scm
 | |
| 	$(CSC) -c $<
 | |
| 
 | |
| %.so: %.scm
 | |
| 	$(CSC) -s $<
 | |
| 
 | |
| %.import.scm: %.scm
 | |
| 	rm -f $@
 | |
| 	$(CSC) -P -J $<
 | |
| 
 | |
| ################################################################
 | |
| # Modules
 | |
| 
 | |
| TESTING-SOURCES=testing.scm
 | |
| 
 | |
| testing.so: testing.o
 | |
| testing.o: testing.import.scm
 | |
| testing.import.scm: $(TESTING-SOURCES)
 | |
| 
 | |
| LISTING-SOURCES=listing.scm testing.import.scm
 | |
| 
 | |
| listing.so: listing.o
 | |
| listing.o: listing.import.scm
 | |
| listing.import.scm: $(LISTING-SOURCES)
 | |
| 
 | |
| DICTIONARY-SOURCES=dictionary.scm testing.import.scm
 | |
| 
 | |
| dictionary.so: dictionary.o
 | |
| dictionary.o: dictionary.import.scm
 | |
| dictionary.import.scm: $(DICTIONARY-SOURCES)
 | |
| 
 | |
| MONTH-SOURCES=month.scm testing.import.scm
 | |
| 
 | |
| month.so: month.o
 | |
| month.o: month.import.scm
 | |
| month.import.scm: $(MONTH-SOURCES)
 | |
| 
 | |
| PERIOD-SOURCES=period.scm testing.import.scm month.import.scm configuration.import.scm
 | |
| 
 | |
| period.so: period.o
 | |
| period.o: period.import.scm
 | |
| period.import.scm: $(PERIOD-SOURCES)
 | |
| 
 | |
| ANSI-SOURCES=ansi.scm testing.import.scm utils.import.scm
 | |
| 
 | |
| ansi.so: ansi.o
 | |
| ansi.o: ansi.import.scm
 | |
| ansi.import.scm: $(ANSI-SOURCES)
 | |
| 
 | |
| COMMAND-LINE-SOURCES=command-line.scm testing.import.scm
 | |
| 
 | |
| command-line.so: command-line.o
 | |
| command-line.o: command-line.import.scm
 | |
| command-line.import.scm: $(COMMAND-LINE-SOURCES)
 | |
| 
 | |
| MEMBERS-BASE-SOURCES=members-base.scm testing.import.scm		\
 | |
| 	utils.import.scm dictionary.import.scm primes.import.scm	\
 | |
| 	member-record.import.scm ansi.import.scm period.import.scm	\
 | |
| 	month.import.scm configuration.import.scm progress.import.scm	\
 | |
| 	table.import.scm member-parser.import.scm
 | |
| 
 | |
| members-base.so: members-base.o
 | |
| members-base.o: members-base.import.scm
 | |
| members-base.import.scm: $(MEMBERS-BASE-SOURCES)
 | |
| 
 | |
| UTILS-SOURCES=utils.scm testing.import.scm
 | |
| 
 | |
| utils.so: utils.o
 | |
| utils.o: utils.import.scm
 | |
| utils.import.scm: $(UTILS-SOURCES)
 | |
| 
 | |
| PRIMES-SOURCES=primes.scm testing.import.scm utils.import.scm
 | |
| 
 | |
| primes.so: primes.o
 | |
| primes.o: primes.import.scm
 | |
| primes.import.scm: $(PRIMES-SOURCES)
 | |
| 
 | |
| MEMBER-RECORD-SOURCES=member-record.scm dictionary.import.scm	\
 | |
| 	period.import.scm testing.import.scm month.import.scm	\
 | |
| 	configuration.import.scm
 | |
| 
 | |
| member-record.so: member-record.o
 | |
| member-record.o: member-record.import.scm
 | |
| member-record.import.scm: $(MEMBER-RECORD-SOURCES)
 | |
| 
 | |
| CONFIGURATION-SOURCES=configuration.scm month.import.scm
 | |
| 
 | |
| configuration.so: configuration.o
 | |
| configuration.o: configuration.import.scm
 | |
| configuration.import.scm: $(CONFIGURATION-SOURCES)
 | |
| 
 | |
| PROGRESS-SOURCES=progress.scm
 | |
| 
 | |
| progress.so: progress.o
 | |
| progress.o: progress.import.scm
 | |
| progress.import.scm: $(PROGRESS-SOURCES)
 | |
| 
 | |
| TABLE-SOURCES=table.scm ansi.import.scm testing.import.scm	\
 | |
| 	utils.import.scm
 | |
| 
 | |
| table.so: table.o
 | |
| table.o: table.import.scm
 | |
| table.import.scm: $(TABLE-SOURCES)
 | |
| 
 | |
| CARDS-SOURCES=cards.scm dictionary.import.scm members-base.import.scm	\
 | |
| 	member-record.import.scm
 | |
| 
 | |
| cards.so: cards.o
 | |
| cards.o: cards.import.scm
 | |
| cards.import.scm: $(CARDS-SOURCES)
 | |
| 
 | |
| MEMBER-PARSER-SOURCES=member-parser.scm member-record.import.scm	\
 | |
| 	testing.import.scm dictionary.import.scm month.import.scm	\
 | |
| 	period.import.scm utils.import.scm configuration.import.scm
 | |
| 
 | |
| member-parser.so: member-parser.o
 | |
| member-parser.o: member-parser.import.scm
 | |
| member-parser.import.scm: $(MEMBER-PARSER-SOURCES)
 | |
| 
 | |
| MEMBER-PRINT-SOURCES=member-print.scm dictionary.import.scm		\
 | |
| 	member-record.import.scm month.import.scm utils.import.scm	\
 | |
| 	table.import.scm listing.import.scm ansi.import.scm
 | |
| 
 | |
| member-print.so: member-print.o
 | |
| member-print.o: member-print.import.scm
 | |
| member-print.import.scm: $(MEMBER-PRINT-SOURCES)
 |