libpayload: Add PDCurses and ncurses' libform/libmenu
[coreboot.git] / payloads / libpayload / curses / PDCurses-3.4 / os2 / gccos2.mak
1 # GNU MAKE Makefile for PDCurses library - OS/2 emx 0.9c+
2 #
3 # Usage: make -f [path\]gccos2.mak [DEBUG=Y] [EMXVIDEO=Y] [DLL=Y] [target]
4 #
5 # where target can be any of:
6 # [all|demos|pdcurses.a|testcurs.exe...]
7 #
8 # The EMXVIDEO option compiles with the emx video library, which
9 # enables a PDCurses program to run under OS/2 and DOS.
10
11 O = o
12
13 ifndef PDCURSES_SRCDIR
14         PDCURSES_SRCDIR = ..
15 endif
16
17 include $(PDCURSES_SRCDIR)/version.mif
18 include $(PDCURSES_SRCDIR)/libobjs.mif
19
20 osdir           = $(PDCURSES_SRCDIR)/os2
21
22 PDCURSES_OS2_H  = $(osdir)/pdcos2.h
23
24 CC              = gcc
25
26 CFLAGS = -I$(PDCURSES_SRCDIR) -c -Wall
27
28 ifeq ($(EMXVIDEO),Y)
29         CFLAGS += -DEMXVIDEO
30         CCLIBS = -lvideo
31         BINDFLAGS = -acm
32 else
33         CCLIBS =
34         BINDFLAGS = 
35 endif
36
37 ifeq ($(DEBUG),Y)
38         CFLAGS  += -g -DPDCDEBUG
39         LDFLAGS = -g
40 else
41         CFLAGS  += -O2
42         LDFLAGS =
43 endif
44
45 BASEDEF         = $(PDCURSES_SRCDIR)\exp-base.def
46
47 DEFDEPS         = $(BASEDEF)
48
49 DEFFILE         = pdcurses.def
50
51 DLLTARGET       = pdcurses.dll
52 DLLFLAGS        = -Zdll -Zcrtdll -Zomf
53
54 LINK            = gcc
55 EMXBIND         = emxbind 
56 EMXOMF          = emxomf
57
58 LIBEXE          = ar
59 LIBFLAGS        = rcv
60
61 ifeq ($(DLL),Y)
62         CFLAGS += -Zdll -Zcrtdll -Zomf
63         LDFLAGS += -Zlinker /PM:VIO -Zomf -Zcrtdll
64         LIBCURSES = pdcurses.lib
65         LIBDEPS = $(LIBOBJS) $(PDCOBJS) $(DEFFILE)
66         PDCLIBS = $(DLLTARGET)
67         EXEPOST =
68         TUIPOST =
69         CLEAN = *.dll *.lib $(DEFFILE)
70 else
71         LIBCURSES = pdcurses.a
72         LIBDEPS = $(LIBOBJS) $(PDCOBJS)
73         PDCLIBS = $(LIBCURSES)
74         EXEPOST = $(EMXBIND) $* $(BINDFLAGS)
75         TUIPOST = $(EMXBIND) tuidemo $(BINDFLAGS)
76         CLEAN = *.a testcurs newdemo xmas tuidemo firework ptest rain worm
77 endif
78
79 .PHONY: all libs clean demos dist
80
81 all:    libs demos
82
83 libs:   $(PDCLIBS)
84
85 clean:
86         -del *.o
87         -del *.exe
88         -del $(CLEAN)
89
90 demos:  $(DEMOS)
91
92 DEMOOBJS = testcurs.o newdemo.o xmas.o tui.o tuidemo.o firework.o \
93 ptest.o rain.o worm.o
94
95 $(DEFFILE) : $(DEFDEPS)
96         echo LIBRARY PDCURSES > $@
97         echo DESCRIPTION 'PDCurses 3.4 Dynamic Linking library' >> $@
98         echo PROTMODE >>$@
99         echo DATA MULTIPLE READWRITE LOADONCALL >> $@
100         echo CODE LOADONCALL >> $@
101         echo EXPORTS >> $@
102         type $(BASEDEF) >> $@
103
104 $(LIBCURSES) : $(LIBDEPS)
105         $(LIBEXE) $(LIBFLAGS) $@ $?
106         -copy $(LIBCURSES) panel.a
107
108 $(DLLTARGET) : $(LIBDEPS)
109         $(LINK) $(DLLFLAGS) -o $(DLLTARGET) $? $(DEFFILE)
110 #       lxlite $(DLLTARGET)
111         emximp -o $(LIBCURSES) $(DEFFILE)
112
113 $(LIBOBJS) $(PDCOBJS) $(DEMOOBJS) : $(PDCURSES_HEADERS)
114 $(PDCOBJS) : $(PDCURSES_OS2_H)
115 $(DEMOS) : $(LIBCURSES)
116 panel.o ptest.o: $(PANEL_HEADER)
117 terminfo.o: $(TERM_HEADER)
118
119 $(LIBOBJS) : %.o: $(srcdir)/%.c
120         $(CC) -c $(CFLAGS) -o$@ $<
121
122 $(PDCOBJS) : %.o: $(osdir)/%.c
123         $(CC) -c $(CFLAGS) -o$@ $<
124
125 firework.exe newdemo.exe rain.exe testcurs.exe worm.exe xmas.exe \
126 ptest.exe: %.exe: %.o
127         $(LINK) $(LDFLAGS) -o $* $< $(LIBCURSES) $(CCLIBS)
128         $(EXEPOST)
129
130 tuidemo.exe:    tuidemo.o tui.o
131         $(LINK) $(LDFLAGS) -o tuidemo tuidemo.o tui.o $(LIBCURSES) $(CCLIBS)
132         $(TUIPOST)
133
134 firework.o newdemo.o ptest.o rain.o testcurs.o worm.o xmas.o: %.o: \
135 $(demodir)/%.c
136         $(CC) $(CFLAGS) -o$@ $<
137
138 tui.o: $(demodir)\tui.c $(demodir)\tui.h
139         $(CC) $(CFLAGS) -I$(demodir) -o $@ $<
140
141 tuidemo.o: $(demodir)\tuidemo.c
142         $(CC) $(CFLAGS) -I$(demodir) -o $@ $<
143
144 PLATFORM1 = EMX OS/2
145 PLATFORM2 = EMX 0.9d for OS/2
146 ARCNAME = pdc$(VER)_emx_os2
147
148 include $(PDCURSES_SRCDIR)/makedist.mif