summaryrefslogtreecommitdiff
path: root/makemakefile.sh
blob: f042c89e170c1b3c6c0818516f21f565055ef700 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/bin/sh

cd "$(dirname "$(readlink -f "$0")")"

ALF_HEADERS=$(cd alf; ls *.h)
ALF_SOURCES=$(cd alf; ls *.cpp)
ALF_MINGW_OBJECTS=$(for i in $ALF_SOURCES; do printf ' out/%s.o' "$(basename "$i" .cpp)"; done)
ALF_VC6_OBJECTS=$(for i in $ALF_SOURCES; do printf ' out/%s.obj' "$(basename "$i" .cpp)"; done)

# mingw makefile
(
    printf '# automatically created by makemakefile.sh. DO NOT EDIT!\n'
    printf '\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 'LDFLAGS = -luser32 -lcomctl32 -lshell32 -lrpcrt4 -lversion -static\n'
    printf '\n'
    printf 'out/widgetfactory.exe: out/widgetfactory.o %s\n' "$ALF_MINGW_OBJECTS"
    printf '\t$(CXX) $(CFLAGS) -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'
    done

    printf 'out/widgetfactory.o: widgetfactory.cpp alf/alf.h\n'
    printf '\t$(CXX) $(CFLAGS) -c -o $@ $<\n\n'

    printf 'clean:\n'
    printf '\trm -f out/*.o out/*.exe\n\n'
) > Makefile.mingw


# vc6 makefile
(
    printf '# automatically created by makemakefile.sh. DO NOT EDIT!\n'
    printf '\n'
    printf 'CXX     = cl.exe\n'
    printf 'CFLAGS  = -O2 -GA -W3 -DUNICODE -D_UNICODE -D_WIN32=0x0501 -D_WIN32_WINNT=0x0501 -D_WIN32_IE=0x0501 -nologo\n'
    printf 'LDFLAGS = /link kernel32.lib user32.lib comctl32.lib shell32.lib gdi32.lib version.lib rpcrt4.lib\n'

    printf '\n'
    printf 'out/widgetfactory.exe: out/widgetfactory.obj %s\n' "$ALF_VC6_OBJECTS"
    printf '\t$(CXX) $(CFLAGS) -Fe$@ $** $(LDFLAGS)\n'
    printf '\n'
    for i in $ALF_SOURCES; do
        printf 'out/%s: %s %s\n' "$(basename "$i" .cpp).obj"  "alf/$i" "$(for k in $ALF_HEADERS; do printf ' alf/%s' "$k"; done)"
        printf '\t$(CXX) $(CFLAGS) -c -Fo$@ %s\n\n' "alf/$i"
    done

    printf 'out/widgetfactory.obj: widgetfactory.cpp alf/alf.h\n'
    printf '\t$(CXX) $(CFLAGS) -c -Fo$@ widgetfactory.cpp\n\n'


    printf 'clean:\n'
    printf '\tdel /f out\\*.obj out\\*.exe\n\n'
) > Makefile.vc6

# vc6 ANSI makefile
(
    printf '# automatically created by makemakefile.sh. DO NOT EDIT!\n'
    printf '\n'
    printf 'CXX     = cl.exe\n'
    printf 'CFLAGS  = -O2 -GA -W3 -D_WIN32=0x0501 -D_WIN32_WINNT=0x0501 -D_WIN32_IE=0x0501 -nologo\n'
    printf 'LDFLAGS = /link kernel32.lib user32.lib comctl32.lib shell32.lib gdi32.lib version.lib rpcrt4.lib\n'

    printf '\n'
    printf 'out/widgetfactory.exe: out/widgetfactory.obj %s\n' "$ALF_VC6_OBJECTS"
    printf '\t$(CXX) $(CFLAGS) -Fe$@ $** $(LDFLAGS)\n'
    printf '\n'
    for i in $ALF_SOURCES; do
        printf 'out/%s: %s %s\n' "$(basename "$i" .cpp).obj"  "alf/$i" "$(for k in $ALF_HEADERS; do printf ' alf/%s' "$k"; done)"
        printf '\t$(CXX) $(CFLAGS) -c -Fo$@ %s\n\n' "alf/$i"
    done

    printf 'out/widgetfactory.obj: widgetfactory.cpp alf/alf.h\n'
    printf '\t$(CXX) $(CFLAGS) -c -Fo$@ widgetfactory.cpp\n\n'


    printf 'clean:\n'
    printf '\tdel /f out\\*.obj out\\*.exe\n\n'
) > Makefile.vc6-ansi