-CC=g++
-CF=-g -Wall
-LF=-lIL
+# "makefile" is automatically generated from "makefile.1.mak"
+# 04.12.2022
+#
+# Copyright (C) 2022 Balthasar SzczepaĆski
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
-all: npb
-npb: npb.cpp makefile
- $(CC) $(CF) $(LF) -o npb npb.cpp
+ifndef TARGET
+TARGET = release
+# when want to change target run this first:
+# make -B TARGET=target_name makefile
+endif
+
+CONFIGFILE = settings-$(TARGET).txt settings.txt
+
+# The configuration tool
+# http://bicyclesonthemoon.info/git/botm-config
+CONFIGURE = /botm/bin/config/configure.pl
+CONFIGURE_CMD = $(PERL) $(CONFIGURE) $(CONFIGFILE)
+
+CC =gcc
+CF =-g -Wall
+L_IL =-lIL
+L_CGI=-lcgi
+
+RM =/usr/bin/rm
+
+STANDALONE=\
+nofading\
+info\
+bluenh\
+reveal\
+diff\
+npb\
+pal_mix\
+pal_unmix\
+pal_mixdiff\
+remap_t_1
+
+C_STANDALONE=\
+standalone-nofading.c\
+standalone-info.c\
+standalone-bluenh.c\
+standalone-reveal.c\
+standalone-diff.c\
+standalone-npb.c\
+standalone-pal_mix.c\
+standalone-pal_unmix.c\
+standalone-pal_mixdiff.c\
+standalone-remap_t_1.c
+
+C_SUBTOOL=\
+nofading.c\
+info.c\
+bluenh.c\
+reveal.c\
+diff.c\
+npb.c\
+pal_mix.c\
+pal_unmix.c\
+pal_mixdiff.c\
+remap_t_1.c
+
+H_SUBTOOL=\
+nofading.h\
+info.h\
+bluenh.h\
+reveal.h\
+diff.h\
+npb.h\
+pal_mix.h\
+pal_unmix.h\
+pal_mixdiff.h\
+remap_t_1.h
+
+H_PNG=\
+npb0.h\
+npb1.h\
+npb2.h\
+npb_ong1.h\
+npb_403.h\
+nh.h
+
+CGI=\
+bluenh-cgi
+
+#C_CGI=\
+#bluenh-cgi.c
+
+# keep these 2 lists in the same order!:
+GENERATE_FROM=\
+online-core.1.h
+
+TO_GENERATE=\
+online-core.h
+
+
+#all: 403 npb npbd npb-ong1 npbd-ong1 bluenh bluenhd insert extract seediff insertframe mremapt-1 compare nofading nofadingd
+all: enhance $(STANDALONE) $(CGI)
+
+
+makefile: makefile.1.mak $(CONFIGFILE)
+ $(CONFIGURE_CMD) < makefile.1.mak > makefile
+
+
+enhance: enhance.c core.h core.c $(H_SUBTOOL) $(C_SUBTOOL) $(H_PNG)
+ $(CC) $(CF) -o enhance enhance.c core.c $(C_SUBTOOL) $(L_IL)
+
+$(STANDALONE): %: standalone-%.c %.c %.h core.c core.h $(H_PNG)
+ $(CC) $(CF) -o $@ standalone-$*.c $*.c core.c $(L_IL)
+
+$(C_STANDALONE): standalone-%.c: settings-subtool.txt standalone.c
+ $(CONFIGURE) subtool=$* settings-subtool.txt --in standalone.c --out $@
+
+$(H_SUBTOOL): %.h: settings-subtool.txt subtool.h
+ $(CONFIGURE) subtool=$* settings-subtool.txt --in subtool.h --out $@
+
+$(TO_GENERATE): $(GENERATE_FROM) $(CONFIGFILE)
+ $(CONFIGURE_CMD) --in $(GENERATE_FROM) --out $(TO_GENERATE)
+
+$(CGI): %: %.c online-core.c online-core.h $(H_PNG)
+ $(CC) $(CF) -o $@ $*.c online-core.c $(L_CGI)
+
+$(H_PNG): %.h: %.png f2h
+ ./f2h $* $*.png $@
+
+f2h: f2h.c
+ $(CC) $(CF) -o f2h f2h.c
+
+
+#test: test.c core.h core.c
+# $(CC) $(CF) -o test test.c core.c $(LF)
+
+clean:
+ $(RM) -f enhance $(C_STANDALONE) $(STANDALONE) $(TO_GENERATE) f2h $(H_PNG) $(H_SUBTOOL) $(CGI)
+
+PHONY: all clean
+
+#npbd-ong1: npb npbd-ong1.cpp makefile
+# $(CC) $(CF) -o npbd-ong1 npbd-ong1.cpp $(LF2)
+#
+#npbd: npb npbd.cpp makefile
+# $(CC) $(CF) -o npbd npbd.cpp $(LF2)
+#
+#bluenhd: bluenhd.cpp makefile
+# $(CC) $(CF) -o bluenhd bluenhd.cpp $(LF2)
+#
+#seediff: seediff.c makefile
+# $(CC) $(CF) $(LF) -o seediff seediff.c
+#
+#insertframe: insertframe.c makefile
+# $(CC) $(CF) -o insertframe insertframe.c $(LF2)
+#
+#remapt-1: remapt-1.c makefile
+# $(CC) $(CF) $(LF) -o remapt-1 remapt-1.c
+#
+#compare: compare.c makefile
+# $(CC) $(CF) $(LF) -o compare compare.c
+#
+#nofadingd: nofadingd.c makefile
+# $(CC) $(CF) $(LF) -o nofadingd nofadingd.c
+#