diff options
| author | Jonas Kümmerlin <jonas@kuemmerlin.eu> | 2019-01-12 00:03:32 +0100 |
|---|---|---|
| committer | Jonas Kümmerlin <jonas@kuemmerlin.eu> | 2019-01-12 00:03:32 +0100 |
| commit | 02d94ecd62e11e28ba87451c392cc6b633bb5c56 (patch) | |
| tree | 1439941681d3497167e868146d6c9f8aed764d9c | |
| parent | a5e78ec91b1c59233260bc776a309804352cd817 (diff) | |
add amalgamation target
| -rw-r--r-- | Makefile.mingw | 47 | ||||
| -rwxr-xr-x | makemakefile.sh | 29 |
2 files changed, 57 insertions, 19 deletions
diff --git a/Makefile.mingw b/Makefile.mingw index ce71482..a7f2583 100644 --- a/Makefile.mingw +++ b/Makefile.mingw @@ -1,45 +1,64 @@ # automatically created by makemakefile.sh. DO NOT EDIT! +CC = i686-w64-mingw32-gcc CXX = i686-w64-mingw32-c++ -CFLAGS = -std=c++98 -Wall -Wextra -mwindows -municode -DUNICODE -D_UNICODE -fno-exceptions -fno-rtti -gstabs +CFLAGS = -std=c99 -Wall -Wextra -mwindows -municode -DUNICODE -D_UNICODE -gstabs +CXXFLAGS = -std=c++98 -Wall -Wextra -mwindows -municode -DUNICODE -D_UNICODE -fno-exceptions -fno-rtti -gstabs LDFLAGS = -luser32 -lcomctl32 -lshell32 -lversion -static +all: out/widgetfactory.exe out/alf/alf.c out/widgetfactory-c.exe + out/widgetfactory.exe: out/widgetfactory.o out/alfbutton.o out/alfcombobox.o out/alfcompat.o out/alf.o out/alfdpiaware.o out/alfedit.o out/alflabel.o out/alflayout.o out/alfpanel.o out/alfspacer.o - $(CXX) $(CFLAGS) -o $@ $^ $(LDFLAGS) + $(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) out/alfbutton.o: alf/alfbutton.cpp alf/alfcompat.h alf/alf.h alf/alflayout.h alf/alflist.h alf/alfpriv.h - $(CXX) $(CFLAGS) -c -o $@ $< + $(CXX) $(CXXFLAGS) -c -o $@ $< out/alfcombobox.o: alf/alfcombobox.cpp alf/alfcompat.h alf/alf.h alf/alflayout.h alf/alflist.h alf/alfpriv.h - $(CXX) $(CFLAGS) -c -o $@ $< + $(CXX) $(CXXFLAGS) -c -o $@ $< out/alfcompat.o: alf/alfcompat.cpp alf/alfcompat.h alf/alf.h alf/alflayout.h alf/alflist.h alf/alfpriv.h - $(CXX) $(CFLAGS) -c -o $@ $< + $(CXX) $(CXXFLAGS) -c -o $@ $< out/alf.o: alf/alf.cpp alf/alfcompat.h alf/alf.h alf/alflayout.h alf/alflist.h alf/alfpriv.h - $(CXX) $(CFLAGS) -c -o $@ $< + $(CXX) $(CXXFLAGS) -c -o $@ $< out/alfdpiaware.o: alf/alfdpiaware.cpp alf/alfcompat.h alf/alf.h alf/alflayout.h alf/alflist.h alf/alfpriv.h - $(CXX) $(CFLAGS) -c -o $@ $< + $(CXX) $(CXXFLAGS) -c -o $@ $< out/alfedit.o: alf/alfedit.cpp alf/alfcompat.h alf/alf.h alf/alflayout.h alf/alflist.h alf/alfpriv.h - $(CXX) $(CFLAGS) -c -o $@ $< + $(CXX) $(CXXFLAGS) -c -o $@ $< out/alflabel.o: alf/alflabel.cpp alf/alfcompat.h alf/alf.h alf/alflayout.h alf/alflist.h alf/alfpriv.h - $(CXX) $(CFLAGS) -c -o $@ $< + $(CXX) $(CXXFLAGS) -c -o $@ $< out/alflayout.o: alf/alflayout.cpp alf/alfcompat.h alf/alf.h alf/alflayout.h alf/alflist.h alf/alfpriv.h - $(CXX) $(CFLAGS) -c -o $@ $< + $(CXX) $(CXXFLAGS) -c -o $@ $< out/alfpanel.o: alf/alfpanel.cpp alf/alfcompat.h alf/alf.h alf/alflayout.h alf/alflist.h alf/alfpriv.h - $(CXX) $(CFLAGS) -c -o $@ $< + $(CXX) $(CXXFLAGS) -c -o $@ $< out/alfspacer.o: alf/alfspacer.cpp alf/alfcompat.h alf/alf.h alf/alflayout.h alf/alflist.h alf/alfpriv.h - $(CXX) $(CFLAGS) -c -o $@ $< + $(CXX) $(CXXFLAGS) -c -o $@ $< out/widgetfactory.o: widgetfactory.cpp alf/alf.h - $(CXX) $(CFLAGS) -c -o $@ $< + $(CXX) $(CXXFLAGS) -c -o $@ $< + +out/alf/alf.c: alf/alflist.h alf/alflayout.h alf/alfcompat.h alf/alfpriv.h alf/alfbutton.cpp alf/alfcombobox.cpp alf/alfcompat.cpp alf/alf.cpp alf/alfdpiaware.cpp alf/alfedit.cpp alf/alflabel.cpp alf/alflayout.cpp alf/alfpanel.cpp alf/alfspacer.cpp + @mkdir -p out/alf + @printf "#include \"alf.h\"\\n" > $@ + @cat $^ | grep -v "^#pragma once" | grep -v "^#include \"alf" >> $@ + +out/alf/alf.h: alf/alf.h + @mkdir -p out/alf + @cp $< $@ + +out/widgetfactory.c: widgetfactory.cpp + @cp $< $@ + +out/widgetfactory-c.exe: out/widgetfactory.c out/alf/alf.h out/alf/alf.c + $(CC) $(CFLAGS) -o $@ out/widgetfactory.c out/alf/alf.c $(LDFLAGS) clean: - rm -f out/*.o out/*.exe + rm -rf out/*.o out/*.exe out/*.c out/*.h out/alf diff --git a/makemakefile.sh b/makemakefile.sh index 86a69b4..79bd0d6 100755 --- a/makemakefile.sh +++ b/makemakefile.sh @@ -11,23 +11,42 @@ ALF_VC6_OBJECTS=$(for i in $ALF_SOURCES; do printf ' out/%s.obj' "$(basename "$i ( printf '# automatically created by makemakefile.sh. DO NOT EDIT!\n' printf '\n' + printf 'CC = i686-w64-mingw32-gcc\n' printf 'CXX = i686-w64-mingw32-c++\n' - printf 'CFLAGS = -std=c++98 -Wall -Wextra -mwindows -municode -DUNICODE -D_UNICODE -fno-exceptions -fno-rtti -gstabs\n' + printf 'CFLAGS = -std=c99 -Wall -Wextra -mwindows -municode -DUNICODE -D_UNICODE -gstabs\n' + printf 'CXXFLAGS = -std=c++98 -Wall -Wextra -mwindows -municode -DUNICODE -D_UNICODE -fno-exceptions -fno-rtti -gstabs\n' printf 'LDFLAGS = -luser32 -lcomctl32 -lshell32 -lversion -static\n' printf '\n' + printf 'all: out/widgetfactory.exe out/alf/alf.c out/widgetfactory-c.exe\n' + printf '\n' printf 'out/widgetfactory.exe: out/widgetfactory.o %s\n' "$ALF_MINGW_OBJECTS" - printf '\t$(CXX) $(CFLAGS) -o $@ $^ $(LDFLAGS)\n' + printf '\t$(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS)\n' printf '\n' for i in $ALF_SOURCES; do printf 'out/%s: %s %s\n' "$(basename "$i" .cpp).o" "alf/$i" "$(for k in $ALF_HEADERS; do printf ' alf/%s' "$k"; done)" - printf '\t$(CXX) $(CFLAGS) -c -o $@ $<\n\n' + printf '\t$(CXX) $(CXXFLAGS) -c -o $@ $<\n\n' done printf 'out/widgetfactory.o: widgetfactory.cpp alf/alf.h\n' - printf '\t$(CXX) $(CFLAGS) -c -o $@ $<\n\n' + printf '\t$(CXX) $(CXXFLAGS) -c -o $@ $<\n\n' + + printf 'out/alf/alf.c: alf/alflist.h alf/alflayout.h alf/alfcompat.h alf/alfpriv.h %s\n' "$(for k in $ALF_SOURCES; do printf ' alf/%s' "$k"; done)" + printf '\t@mkdir -p out/alf\n' + printf '\t@printf "#include \\"alf.h\\"\\\\n" > $@\n' + printf '\t@cat $^ | grep -v "^#pragma once" | grep -v "^#include \\"alf" >> $@\n\n' + + printf 'out/alf/alf.h: alf/alf.h\n' + printf '\t@mkdir -p out/alf\n' + printf '\t@cp $< $@\n\n' + + printf 'out/widgetfactory.c: widgetfactory.cpp\n' + printf '\t@cp $< $@\n\n' + + printf 'out/widgetfactory-c.exe: out/widgetfactory.c out/alf/alf.h out/alf/alf.c\n' + printf '\t$(CC) $(CFLAGS) -o $@ out/widgetfactory.c out/alf/alf.c $(LDFLAGS)\n\n' printf 'clean:\n' - printf '\trm -f out/*.o out/*.exe\n\n' + printf '\trm -rf out/*.o out/*.exe out/*.c out/*.h out/alf\n\n' ) > Makefile.mingw |
