476 lines
15 KiB
Makefile
476 lines
15 KiB
Makefile
#
|
|
# Makefile
|
|
#
|
|
# Building the project.
|
|
#
|
|
# 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: static
|
|
static: ../hackerbase
|
|
|
|
CSC=csc
|
|
|
|
HACKERBASE-DEPS=hackerbase.scm cal-month.import.scm \
|
|
command-line.import.scm mbase.import.scm brmember.import.scm \
|
|
configuration.import.scm export-cards.import.scm \
|
|
members-print.import.scm members-payments.import.scm \
|
|
export-wiki-compat.import.scm environment.import.scm \
|
|
mailman.import.scm texts.import.scm tests.import.scm \
|
|
notifications.import.scm logging.import.scm \
|
|
progress.import.scm cal-period.import.scm \
|
|
util-stdout.import.scm
|
|
|
|
HACKERBASE-OBJS=hackerbase.o testing.o listing.o cal-month.o \
|
|
cal-period.o ansi.o util-dict-list.o command-line.o mbase.o \
|
|
primes.o brmember.o configuration.o progress.o table-old.o \
|
|
export-cards.o members-print.o members-fees.o mbase-dir.o \
|
|
util-csv.o bank-account.o bank-fio.o members-payments.o \
|
|
brmember-parser.o export-wiki-compat.o environment.o \
|
|
mailman.o util-set-list.o util-time.o util-tag.o util-io.o \
|
|
util-string.o util-io.o util-parser.o texts.o tests.o \
|
|
util-proc.o util-mail.o notifications.o util-format.o \
|
|
brmember-format.o logging.o specification.o util-git.o \
|
|
cal-day.o util-stdout.o cal-format.o util-dict-bst.o table.o \
|
|
sgr-list.o sgr-block.o table-processor.o table-border.o \
|
|
table-style.o sgr-state.o util-utf8.o sgr-cell.o \
|
|
template-list-expander.o box-drawing.o
|
|
|
|
.PHONY: imports
|
|
imports: $(HACKERBASE-DEPS)
|
|
|
|
../hackerbase: $(HACKERBASE-OBJS)
|
|
$(CSC) -strip -static -o $@ $(HACKERBASE-OBJS)
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
rm -f *.c *.link *.o *.import.scm ../hackerbase
|
|
|
|
.PHONY: install
|
|
install: static
|
|
install -m 0755 -d /usr/local/bin
|
|
install -m 0755 ../hackerbase /usr/local/bin/
|
|
install -m 0755 ../fetch_fio.sh /usr/local/bin/hb_fetch_fio
|
|
install -m 0755 -d /usr/local/man/man1
|
|
install -m 0755 ../doc/hackerbase.1 /usr/local/man/man1/hackerbase.1
|
|
|
|
.PHONY: install-dev
|
|
install-dev: static
|
|
install -m 0755 -d /usr/local/bin
|
|
install -m 0755 ../hackerbase /usr/local/bin/hackerbase-dev
|
|
install -m 0755 ../fetch_fio.sh /usr/local/bin/hb_fetch_fio-dev
|
|
install -m 0755 -d /usr/local/man/man1
|
|
install -m 0755 ../doc/hackerbase.1 /usr/local/man/man1/hackerbase-dev.1
|
|
|
|
################################################################
|
|
# Module static and shared object and import source compilation
|
|
|
|
%.o: %.scm
|
|
$(CSC) -c -static $<
|
|
|
|
%.import.scm: %.scm
|
|
$(CSC) -regenerate-import-libraries -P -J $<
|
|
|
|
################################################################
|
|
# Main program
|
|
|
|
hackerbase.o: $(HACKERBASE-DEPS)
|
|
|
|
################################################################
|
|
# Modules
|
|
|
|
TESTING-SOURCES=testing.scm
|
|
|
|
testing.o: testing.import.scm
|
|
testing.import.scm: $(TESTING-SOURCES)
|
|
|
|
LISTING-SOURCES=listing.scm testing.import.scm ansi.import.scm \
|
|
racket-kwargs.import.scm table.import.scm
|
|
|
|
listing.o: listing.import.scm
|
|
listing.import.scm: $(LISTING-SOURCES)
|
|
|
|
UTIL-DICT-LIST-SOURCES=util-dict-list.scm testing.import.scm \
|
|
util-tag.import.scm util-proc.import.scm \
|
|
util-set-list.import.scm
|
|
|
|
util-dict-list.o: util-dict-list.import.scm
|
|
util-dict-list.import.scm: $(UTIL-DICT-LIST-SOURCES)
|
|
|
|
ANSI-SOURCES=ansi.scm testing.import.scm util-list.import.scm
|
|
|
|
ansi.o: ansi.import.scm
|
|
ansi.import.scm: $(ANSI-SOURCES)
|
|
|
|
COMMAND-LINE-SOURCES=command-line.scm testing.import.scm \
|
|
util-proc.import.scm util-list.import.scm
|
|
|
|
command-line.o: command-line.import.scm
|
|
command-line.import.scm: $(COMMAND-LINE-SOURCES)
|
|
|
|
MBASE-SOURCES=mbase.scm testing.import.scm util-dict-list.import.scm \
|
|
primes.import.scm brmember.import.scm ansi.import.scm \
|
|
cal-period.import.scm cal-month.import.scm \
|
|
configuration.import.scm progress.import.scm \
|
|
table-old.import.scm mbase-dir.import.scm \
|
|
util-tag.import.scm racket-kwargs.import.scm \
|
|
util-dict-bst.import.scm util-list.import.scm
|
|
|
|
mbase.o: mbase.import.scm
|
|
mbase.import.scm: $(MBASE-SOURCES)
|
|
|
|
PRIMES-SOURCES=primes.scm testing.import.scm util-list.import.scm
|
|
|
|
primes.o: primes.import.scm
|
|
primes.import.scm: $(PRIMES-SOURCES)
|
|
|
|
BRMEMBER-SOURCES=brmember.scm util-dict-list.import.scm \
|
|
cal-period.import.scm testing.import.scm cal-month.import.scm \
|
|
configuration.import.scm primes.import.scm \
|
|
bank-account.import.scm util-tag.import.scm \
|
|
util-list.import.scm
|
|
|
|
brmember.o: brmember.import.scm
|
|
brmember.import.scm: $(BRMEMBER-SOURCES)
|
|
|
|
CONFIGURATION-SOURCES=configuration.scm util-parser.import.scm
|
|
|
|
configuration.o: configuration.import.scm
|
|
configuration.import.scm: $(CONFIGURATION-SOURCES)
|
|
|
|
PROGRESS-SOURCES=progress.scm util-time.import.scm
|
|
|
|
progress.o: progress.import.scm
|
|
progress.import.scm: $(PROGRESS-SOURCES)
|
|
|
|
TABLE-OLD-SOURCES=table-old.scm ansi.import.scm testing.import.scm \
|
|
util-string.import.scm racket-kwargs.import.scm \
|
|
util-list.import.scm
|
|
|
|
table-old.o: table-old.import.scm
|
|
table-old.import.scm: $(TABLE-OLD-SOURCES)
|
|
|
|
EXPORT-CARDS-SOURCES=export-cards.scm util-dict-list.import.scm \
|
|
mbase.import.scm brmember.import.scm
|
|
|
|
export-cards.o: export-cards.import.scm
|
|
export-cards.import.scm: $(EXPORT-CARDS-SOURCES)
|
|
|
|
BRMEMBER-PARSER-SOURCES=brmember-parser.scm brmember.import.scm \
|
|
testing.import.scm util-dict-list.import.scm \
|
|
cal-month.import.scm cal-period.import.scm \
|
|
configuration.import.scm util-string.import.scm \
|
|
util-parser.import.scm cal-day.import.scm \
|
|
util-list.import.scm
|
|
|
|
brmember-parser.o: brmember-parser.import.scm
|
|
brmember-parser.import.scm: $(BRMEMBER-PARSER-SOURCES)
|
|
|
|
MEMBERS-PRINT-SOURCES=members-print.scm util-dict-list.import.scm \
|
|
brmember.import.scm cal-month.import.scm table-old.import.scm \
|
|
listing.import.scm ansi.import.scm cal-period.import.scm \
|
|
primes.import.scm mbase.import.scm configuration.import.scm \
|
|
bank-account.import.scm members-fees.import.scm \
|
|
members-payments.import.scm brmember-format.import.scm \
|
|
specification.import.scm cal-format.import.scm \
|
|
util-git.import.scm util-list.import.scm
|
|
|
|
members-print.o: members-print.import.scm
|
|
members-print.import.scm: $(MEMBERS-PRINT-SOURCES)
|
|
|
|
MEMBERS-FEES-SOURCES=members-fees.scm configuration.import.scm \
|
|
brmember.import.scm cal-month.import.scm table-old.import.scm \
|
|
mbase.import.scm specification.import.scm \
|
|
util-list.import.scm
|
|
|
|
members-fees.o: members-fees.import.scm
|
|
members-fees.import.scm: $(MEMBERS-FEES-SOURCES)
|
|
|
|
MBASE-DIR-SOURCES=mbase-dir.scm testing.import.scm \
|
|
util-dict-list.import.scm brmember.import.scm \
|
|
brmember-parser.import.scm util-list.import.scm
|
|
|
|
mbase-dir.o: mbase-dir.import.scm
|
|
mbase-dir.import.scm: $(MBASE-DIR-SOURCES)
|
|
|
|
UTIL-CSV-SOURCES=util-csv.scm testing.import.scm \
|
|
progress.import.scm util-io.import.scm
|
|
|
|
util-csv.o: util-csv.import.scm
|
|
util-csv.import.scm: $(UTIL-CSV-SOURCES)
|
|
|
|
BANK-ACCOUNT-SOURCES=bank-account.scm util-tag.import.scm
|
|
|
|
bank-account.o: bank-account.import.scm
|
|
bank-account.import.scm: $(BANK-ACCOUNT-SOURCES)
|
|
|
|
BANK-FIO-SOURCES=bank-fio.scm bank-account.import.scm \
|
|
util-csv.import.scm progress.import.scm
|
|
|
|
bank-fio.o: bank-fio.import.scm
|
|
bank-fio.import.scm: $(BANK-FIO-SOURCES)
|
|
|
|
MEMBERS-PAYMENTS-SOURCES=members-payments.scm bank-account.import.scm \
|
|
util-dict-list.import.scm members-fees.import.scm \
|
|
cal-period.import.scm configuration.import.scm \
|
|
progress.import.scm bank-fio.import.scm \
|
|
specification.import.scm util-list.import.scm
|
|
|
|
members-payments.o: members-payments.import.scm
|
|
members-payments.import.scm: $(MEMBERS-PAYMENTS-SOURCES)
|
|
|
|
EXPORT-WIKI-COMPAT-SOURCES=export-wiki-compat.scm brmember.import.scm \
|
|
configuration.import.scm members-payments.import.scm \
|
|
mbase.import.scm util-git.import.scm progress.import.scm \
|
|
util-list.import.scm
|
|
|
|
export-wiki-compat.o: export-wiki-compat.import.scm
|
|
export-wiki-compat.import.scm: $(EXPORT-WIKI-COMPAT-SOURCES)
|
|
|
|
ENVIRONMENT-SOURCES=environment.scm ansi.import.scm
|
|
|
|
environment.o: environment.import.scm
|
|
environment.import.scm: $(ENVIRONMENT-SOURCES)
|
|
|
|
MAILMAN-SOURCES=mailman.scm progress.import.scm \
|
|
util-set-list.import.scm util-io.import.scm \
|
|
util-list.import.scm
|
|
|
|
mailman.o: mailman.import.scm
|
|
mailman.import.scm: $(MAILMAN-SOURCES)
|
|
|
|
UTIL-SET-LIST-SOURCES=util-set-list.scm testing.import.scm \
|
|
util-tag.import.scm
|
|
|
|
util-set-list.o: util-set-list.import.scm
|
|
util-set-list.import.scm: $(UTIL-SET-LIST-SOURCES)
|
|
|
|
UTIL-TIME-SOURCES=util-time.scm
|
|
|
|
util-time.o: util-time.import.scm
|
|
util-time.import.scm: $(UTIL-TIME-SOURCES)
|
|
|
|
UTIL-TAG-SOURCES=util-tag.scm testing.import.scm
|
|
|
|
util-tag.o: util-tag.import.scm
|
|
util-tag.import.scm: $(UTIL-TAG-SOURCES)
|
|
|
|
UTIL-IO-SOURCES=util-io.scm
|
|
|
|
util-io.o: util-io.import.scm
|
|
util-io.import.scm: $(UTIL-IO-SOURCES)
|
|
|
|
UTIL-STRING-SOURCES=util-string.scm testing.import.scm
|
|
|
|
util-string.o: util-string.import.scm
|
|
util-string.import.scm: $(UTIL-STRING-SOURCES)
|
|
|
|
UTIL-IO-SOURCES=util-io.scm
|
|
|
|
util-io.o: util-io.import.scm
|
|
util-io.import.scm: $(UTIL-IO-SOURCES)
|
|
|
|
UTIL-PARSER-SOURCES=util-parser.scm testing.import.scm
|
|
|
|
util-parser.o: util-parser.import.scm
|
|
util-parser.import.scm: $(UTIL-PARSER-SOURCES)
|
|
|
|
TEXTS-SOURCES=texts.scm
|
|
|
|
texts.o: texts.import.scm
|
|
texts.import.scm: $(TEXTS-SOURCES)
|
|
|
|
TESTS-SOURCES=tests.scm listing.import.scm util-dict-list.import.scm \
|
|
cal-month.import.scm cal-period.import.scm ansi.import.scm \
|
|
command-line.import.scm mbase-dir.import.scm \
|
|
primes.import.scm brmember.import.scm table-old.import.scm \
|
|
util-csv.import.scm util-set-list.import.scm \
|
|
util-parser.import.scm util-string.import.scm \
|
|
cal-day.import.scm util-dict-bst.import.scm \
|
|
util-utf8.import.scm sgr-state.import.scm sgr-list.import.scm \
|
|
sgr-block.import.scm template-list-expander.import.scm \
|
|
table-style.import.scm box-drawing.import.scm
|
|
|
|
tests.o: tests.import.scm
|
|
tests.import.scm: $(TESTS-SOURCES)
|
|
|
|
UTIL-PROC-SOURCES=util-proc.scm
|
|
|
|
util-proc.o: util-proc.import.scm
|
|
util-proc.import.scm: $(UTIL-PROC-SOURCES)
|
|
|
|
UTIL-MAIL-SOURCES=util-mail.scm util-io.import.scm \
|
|
util-string.import.scm
|
|
|
|
util-mail.o: util-mail.import.scm
|
|
util-mail.import.scm: $(UTIL-MAIL-SOURCES)
|
|
|
|
NOTIFICATIONS-SOURCES=notifications.scm brmember.import.scm \
|
|
util-mail.import.scm util-dict-list.import.scm \
|
|
members-payments.import.scm util-format.import.scm \
|
|
brmember-format.import.scm configuration.import.scm \
|
|
util-time.import.scm members-fees.import.scm mbase.import.scm \
|
|
members-print.import.scm table-old.import.scm \
|
|
bank-account.import.scm logging.import.scm
|
|
|
|
notifications.o: notifications.import.scm
|
|
notifications.import.scm: $(NOTIFICATIONS-SOURCES)
|
|
|
|
UTIL-FORMAT-SOURCES=util-format.scm
|
|
|
|
util-format.o: util-format.import.scm
|
|
util-format.import.scm: $(UTIL-FORMAT-SOURCES)
|
|
|
|
BRMEMBER-FORMAT-SOURCES=brmember-format.scm util-dict-list.import.scm \
|
|
brmember.import.scm bank-account.import.scm \
|
|
members-fees.import.scm members-payments.import.scm
|
|
|
|
brmember-format.o: brmember-format.import.scm
|
|
brmember-format.import.scm: $(BRMEMBER-FORMAT-SOURCES)
|
|
|
|
LOGGING-SOURCES=logging.scm util-string.import.scm
|
|
|
|
logging.o: logging.import.scm
|
|
logging.import.scm: $(LOGGING-SOURCES)
|
|
|
|
SPECIFICATION-SOURCES=specification.scm cal-period.import.scm
|
|
|
|
specification.o: specification.import.scm
|
|
specification.import.scm: $(SPECIFICATION-SOURCES)
|
|
|
|
UTIL-GIT-SOURCES=util-git.scm util-io.import.scm \
|
|
util-dict-list.import.scm util-parser.import.scm \
|
|
util-time.import.scm
|
|
|
|
util-git.o: util-git.import.scm
|
|
util-git.import.scm: $(UTIL-GIT-SOURCES)
|
|
|
|
CAL-MONTH-SOURCES=cal-month.scm util-tag.import.scm \
|
|
testing.import.scm
|
|
|
|
cal-month.o: cal-month.import.scm
|
|
cal-month.import.scm: $(CAL-MONTH-SOURCES)
|
|
|
|
CAL-PERIOD-SOURCES=cal-period.scm cal-month.import.scm \
|
|
testing.import.scm util-tag.import.scm cal-day.import.scm
|
|
|
|
cal-period.o: cal-period.import.scm
|
|
cal-period.import.scm: $(CAL-PERIOD-SOURCES)
|
|
|
|
CAL-DAY-SOURCES=cal-day.scm util-tag.import.scm cal-month.import.scm \
|
|
testing.import.scm
|
|
|
|
cal-day.o: cal-day.import.scm
|
|
cal-day.import.scm: $(CAL-DAY-SOURCES)
|
|
|
|
UTIL-STDOUT-SOURCES=util-stdout.scm
|
|
|
|
util-stdout.o: util-stdout.import.scm
|
|
util-stdout.import.scm: $(UTIL-STDOUT-SOURCES)
|
|
|
|
CAL-FORMAT-SOURCES=cal-format.scm cal-day.import.scm cal-month.import.scm
|
|
|
|
cal-format.o: cal-format.import.scm
|
|
cal-format.import.scm: $(CAL-FORMAT-SOURCES)
|
|
|
|
UTIL-DICT-BST-SOURCES=util-dict-bst.scm util-tag.import.scm \
|
|
testing.import.scm
|
|
|
|
util-dict-bst.o: util-dict-bst.import.scm
|
|
util-dict-bst.import.scm: $(UTIL-DICT-BST-SOURCES)
|
|
|
|
RACKET-KWARGS-SOURCES=racket-kwargs.scm
|
|
|
|
racket-kwargs.import.scm: $(RACKET-KWARGS-SOURCES)
|
|
|
|
TABLE-SOURCES=table.scm sgr-list.import.scm sgr-block.import.scm \
|
|
racket-kwargs.import.scm table-processor.import.scm \
|
|
table-border.import.scm table-style.import.scm
|
|
|
|
table.o: table.import.scm
|
|
table.import.scm: $(TABLE-SOURCES)
|
|
|
|
SGR-LIST-SOURCES=sgr-list.scm racket-kwargs.import.scm \
|
|
sgr-state.import.scm testing.import.scm util-utf8.import.scm
|
|
|
|
sgr-list.o: sgr-list.import.scm
|
|
sgr-list.import.scm: $(SGR-LIST-SOURCES)
|
|
|
|
SGR-BLOCK-SOURCES=sgr-block.scm racket-kwargs.import.scm \
|
|
sgr-state.import.scm sgr-list.import.scm testing.import.scm
|
|
|
|
sgr-block.o: sgr-block.import.scm
|
|
sgr-block.import.scm: $(SGR-BLOCK-SOURCES)
|
|
|
|
TABLE-PROCESSOR-SOURCES=table-processor.scm sgr-cell.import.scm \
|
|
template-list-expander.import.scm
|
|
|
|
table-processor.o: table-processor.import.scm
|
|
table-processor.import.scm: $(TABLE-PROCESSOR-SOURCES)
|
|
|
|
TABLE-BORDER-SOURCES=table-border.scm racket-kwargs.import.scm \
|
|
box-drawing.import.scm util-utf8.import.scm \
|
|
sgr-block.import.scm
|
|
|
|
table-border.o: table-border.import.scm
|
|
table-border.import.scm: $(TABLE-BORDER-SOURCES)
|
|
|
|
TABLE-STYLE-SOURCES=table-style.scm box-drawing.import.scm \
|
|
testing.import.scm template-list-expander.import.scm
|
|
|
|
table-style.o: table-style.import.scm
|
|
table-style.import.scm: $(TABLE-STYLE-SOURCES)
|
|
|
|
SGR-STATE-SOURCES=sgr-state.scm testing.import.scm \
|
|
racket-kwargs.import.scm
|
|
|
|
sgr-state.o: sgr-state.import.scm
|
|
sgr-state.import.scm: $(SGR-STATE-SOURCES)
|
|
|
|
UTIL-UTF8-SOURCES=util-utf8.scm testing.import.scm
|
|
|
|
util-utf8.o: util-utf8.import.scm
|
|
util-utf8.import.scm: $(UTIL-UTF8-SOURCES)
|
|
|
|
SGR-CELL-SOURCES=sgr-cell.scm racket-kwargs.import.scm \
|
|
sgr-state.import.scm sgr-list.import.scm sgr-block.import.scm
|
|
|
|
sgr-cell.o: sgr-cell.import.scm
|
|
sgr-cell.import.scm: $(SGR-CELL-SOURCES)
|
|
|
|
TEMPLATE-LIST-EXPANDER-SOURCES=template-list-expander.scm \
|
|
testing.import.scm
|
|
|
|
template-list-expander.o: template-list-expander.import.scm
|
|
template-list-expander.import.scm: $(TEMPLATE-LIST-EXPANDER-SOURCES)
|
|
|
|
BOX-DRAWING-SOURCES=box-drawing.scm util-utf8.import.scm \
|
|
racket-kwargs.import.scm testing.import.scm
|
|
|
|
box-drawing.o: box-drawing.import.scm
|
|
box-drawing.import.scm: $(BOX-DRAWING-SOURCES)
|
|
|
|
UTIL-LIST-SOURCES=util-list.scm testing.import.scm
|
|
|
|
util-list.o: util-list.import.scm
|
|
util-list.import.scm: $(UTIL-LIST-SOURCES)
|