# GNU MAKE Makefile for PDCurses library - WIN32 Cygnus GCC # # Usage: make -f [path\]gccwin32.mak [DEBUG=Y] [DLL=Y] [WIDE=Y] [UTF8=Y] [tgt] # # where tgt can be any of: # [all|demos|pdcurses.a|testcurs.exe...] O = o ifndef PDCURSES_SRCDIR PDCURSES_SRCDIR = .. endif include $(PDCURSES_SRCDIR)/version.mif include $(PDCURSES_SRCDIR)/libobjs.mif osdir = $(PDCURSES_SRCDIR)/win32 PDCURSES_WIN_H = $(osdir)/pdcwin.h CC = gcc ifeq ($(DEBUG),Y) CFLAGS = -g -Wall -DPDCDEBUG LDFLAGS = -g else CFLAGS = -O2 -Wall LDFLAGS = endif CFLAGS += -I$(PDCURSES_SRCDIR) BASEDEF = $(PDCURSES_SRCDIR)/exp-base.def WIDEDEF = $(PDCURSES_SRCDIR)/exp-wide.def DEFDEPS = $(BASEDEF) ifeq ($(WIDE),Y) CFLAGS += -DPDC_WIDE DEFDEPS += $(WIDEDEF) endif ifeq ($(UTF8),Y) CFLAGS += -DPDC_FORCE_UTF8 endif DEFFILE = pdcurses.def LINK = gcc ifeq ($(DLL),Y) CFLAGS += -DPDC_DLL_BUILD LIBEXE = gcc $(DEFFILE) LIBFLAGS = -Wl,--out-implib,pdcurses.a -shared -o LIBCURSES = pdcurses.dll LIBDEPS = $(LIBOBJS) $(PDCOBJS) $(DEFFILE) CLEAN = $(LIBCURSES) *.a $(DEFFILE) else LIBEXE = ar LIBFLAGS = rcv LIBCURSES = pdcurses.a LIBDEPS = $(LIBOBJS) $(PDCOBJS) CLEAN = *.a endif .PHONY: all libs clean demos dist all: libs demos libs: $(LIBCURSES) clean: -rm -f *.o -rm -f *.exe -rm -f $(CLEAN) demos: $(DEMOS) strip *.exe $(DEFFILE): $(DEFDEPS) echo LIBRARY pdcurses > $@ echo EXPORTS >> $@ cat $(BASEDEF) >> $@ ifeq ($(WIDE),Y) cat $(WIDEDEF) >> $@ endif $(LIBCURSES) : $(LIBDEPS) $(LIBEXE) $(LIBFLAGS) $@ $? -cp pdcurses.a panel.a $(LIBOBJS) $(PDCOBJS) : $(PDCURSES_HEADERS) $(PDCOBJS) : $(PDCURSES_WIN_H) $(DEMOS) : $(PDCURSES_CURSES_H) $(LIBCURSES) panel.o : $(PANEL_HEADER) terminfo.o: $(TERM_HEADER) $(LIBOBJS) : %.o: $(srcdir)/%.c $(CC) -c $(CFLAGS) $< $(PDCOBJS) : %.o: $(osdir)/%.c $(CC) -c $(CFLAGS) $< firework.exe newdemo.exe rain.exe testcurs.exe worm.exe xmas.exe \ ptest.exe: %.exe: $(demodir)/%.c $(CC) $(CFLAGS) -o$@ $< $(LIBCURSES) tuidemo.exe: tuidemo.o tui.o $(LINK) $(LDFLAGS) -o$@ tuidemo.o tui.o $(LIBCURSES) tui.o: $(demodir)/tui.c $(demodir)/tui.h $(PDCURSES_CURSES_H) $(CC) -c $(CFLAGS) -I$(demodir) -o$@ $< tuidemo.o: $(demodir)/tuidemo.c $(PDCURSES_CURSES_H) $(CC) -c $(CFLAGS) -I$(demodir) -o$@ $< dist: $(PDCLIBS) echo PDCurses $(VERDOT) for Cygnus Win32 > file_id.diz echo ------------------------------------------ >> file_id.diz echo Public Domain Curses library for >> file_id.diz echo Cygnus GCC for Win32. >> file_id.diz echo Source available in PDCURS$(VER).ZIP >> file_id.diz echo Public Domain. >> file_id.diz zip -9jX pdc$(VER)_cyg_w32 \ $(PDCURSES_SRCDIR)/README $(PDCURSES_SRCDIR)/HISTORY \ $(PDCURSES_SRCDIR)/curses.h $(PDCURSES_SRCDIR)/panel.h \ $(LIBCURSES) $(LIBPANEL) file_id.diz rm file_id.diz