1# This file is part of the FreeType project. 2# 3# It builds the library and test programs for BC++ under MSDOS, large model. 4# 5# Tested with Borland C++ v.3.1, 4.02, 5.0 6# You will need Borland MAKE (v.3.6 and above should be OK, for oldest 7# versions refer to the instructions below). 8# 9# 10# Use this file while in the 'test' directory with the following statement: 11# 12# make -farch\msdos\Makefile.BC 13# 14# 15# Debug versions can be obtained with 16# 17# make -DDEBUG -farch\msdos\Makefile.BC 18# 19# A special version enabled to handle big fonts (with more than 16,384 20# glyphs) can be obtained with 21# 22# make -DBIGFONTS -farch\msdos\Makefile.BC 23 24ARCH = arch\msdos 25FT_MAKEFILE = $(ARCH)\Makefile.BC 26 27CC = bcc 28 29LIBDIR = ..\lib 30INCDIRS = -I$(LIBDIR);$(LIBDIR)\$(ARCH);.;$(LIBDIR)\extend 31SPURIOUS_WARNINGS = -w-nak -w-par -w-use -w-aus -w-stu -w-stv -w-cln -w-sig -w-pia 32 33# Credits go to Dave Hoo <dhoo@flash.net> for pointing out that modern 34# Borland compilers (from BC++ 3.1 on) can increase the limit of 35# the length of identifiers. 36!if ! $d(DEBUG) 37CFLAGS = -ml -A -O2 -3 -i40 $(INCDIRS) $(SPURIOUS_WARNINGS) 38LDFLAGS = -ml 39!else 40CFLAGS = -v -N -ml -A -i40 $(INCDIRS) $(SPURIOUS_WARNINGS) 41LDFLAGS = -v -ml 42!endif 43 44 45# full-screen MSDOS driver 46GDRIVER = $(ARCH)\.\gfs_dos.c 47 48DISPLAY = display.c 49 50G1SRC = gmain.c blitter.c $(GDRIVER) 51GSRC = $(DISPLAY) $(G1SRC) 52 53GOBJ = $(GSRC:.c=.obj) 54G1OBJ = $(G1SRC:.c=.obj) 55 56 57SRC = arabic.c \ 58 common.c \ 59 ftdump.c \ 60 fterror.c \ 61 ftlint.c \ 62 ftmetric.c \ 63 ftsbit.c \ 64 ftstring.c \ 65 ftstrpnm.c \ 66 ftstrtto.c \ 67 fttimer.c \ 68 ftview.c \ 69 ftzoom.c 70 71OBJ = $(SRC:.c=.obj) 72 73 74.c.obj: 75 $(CC) -c -o$* @&&| 76 $(CFLAGS) $< 77| 78 79EXEFILES = ftdump.exe \ 80 fterror.exe \ 81 ftlint.exe \ 82 ftmetric.exe \ 83 ftsbit.exe \ 84 ftstring.exe \ 85 ftstrpnm.exe \ 86 ftstrtto.exe \ 87 fttimer.exe \ 88 ftview.exe \ 89 ftzoom.exe 90 91!if !$d(DEBUG) 92# Skipped if DEBUG build 93all: freetype $(EXEFILES) 94 95!endif 96 97debug: freetype_debug $(EXEFILES) 98 99!if $d(BIGFONTS) 100MAKEBIG = -DBIGFONTS 101!endif 102 103freetype: 104 cd $(LIBDIR) 105 make -f$(FT_MAKEFILE) $(MAKEBIG) all 106 cd ..\test 107 108freetype_debug: 109 cd $(LIBDIR) 110 make -f$(FT_MAKEFILE) -DDEBUG $(MAKEBIG) debug 111 cd ..\test 112 113 114# Borland C compilers are unable to include <dos.h> in ANSI mode. 115# So we have a special rule for this file, to build it outside ANSI. 116$(GDRIVER:.c=.obj): 117 $(CC) -c -o$* @&&| 118 $(CFLAGS) -A- $*.c 119| 120 121.obj.exe: 122 $(CC) -e$* @&&| 123 $(LDFLAGS) $** 124| 125 126# Borland versions of make are unable to use the $** variable inside 127# implicit rules (like .obj.exe:). The job has to be done by hand. :-( 128ftzoom.exe: $(G1OBJ) ftzoom.obj common.obj $(LIBDIR)\libttf.lib 129 $(CC) $(LDFLAGS) ftzoom.obj $(G1OBJ) common.obj $(LIBDIR)\libttf.lib 130 131ftview.exe: $(GOBJ) ftview.obj common.obj $(LIBDIR)\libttf.lib 132 $(CC) $(LDFLAGS) ftview.obj $(GOBJ) common.obj $(LIBDIR)\libttf.lib 133 134ftstring.exe: $(GOBJ) ftstring.obj common.obj $(LIBDIR)\libttf.lib 135 $(CC) $(LDFLAGS) ftstring.obj $(GOBJ) common.obj $(LIBDIR)\libttf.lib 136 137ftstrtto.exe: $(GOBJ) ftstrtto.obj common.obj arabic.obj $(LIBDIR)\libttf.lib 138 $(CC) $(LDFLAGS) ftstrtto.obj $(GOBJ) common.obj arabic.obj \ 139 $(LIBDIR)\libttf.lib 140 141fttimer.exe: $(G1OBJ) fttimer.obj common.obj $(LIBDIR)\libttf.lib 142 $(CC) $(LDFLAGS) fttimer.obj $(G1OBJ) common.obj $(LIBDIR)\libttf.lib 143 144ftlint.exe: ftlint.obj common.obj $(LIBDIR)\libttf.lib 145 $(CC) $(LDFLAGS) ftlint.obj common.obj $(LIBDIR)\libttf.lib 146 147ftdump.exe: ftdump.obj common.obj $(LIBDIR)\libttf.lib 148 $(CC) $(LDFLAGS) ftdump.obj common.obj $(LIBDIR)\libttf.lib 149 150ftstrpnm.exe: ftstrpnm.obj common.obj $(LIBDIR)\libttf.lib 151 $(CC) $(LDFLAGS) ftstrpnm.obj common.obj $(LIBDIR)\libttf.lib 152 153ftsbit.exe: ftsbit.obj common.obj $(LIBDIR)\libttf.lib 154 $(CC) $(LDFLAGS) ftsbit.obj common.obj $(LIBDIR)\libttf.lib 155 156ftmetric.exe: ftmetric.obj common.obj $(LIBDIR)\libttf.lib 157 $(CC) $(LDFLAGS) ftmetric.obj common.obj $(LIBDIR)\libttf.lib 158 159fterror.exe: fterror.obj common.obj $(LIBDIR)\libttf.lib 160 $(CC) $(LDFLAGS) fterror.obj common.obj $(LIBDIR)\libttf.lib 161 162 163clean: do_clean 164 cd $(LIBDIR) 165 make -f$(FT_MAKEFILE) clean 166 cd ..\test 167 168distclean: do_clean 169 cd $(LIBDIR) 170 make -f$(FT_MAKEFILE) distclean 171 cd ..\test 172 -del *.exe 173 174do_clean: 175 -del *.obj 176 -del $(ARCH)\*.obj 177 del time.h # clean the ugly hack for Turbo C... 178 179!include "$(ARCH)\depend.dos" 180 181# end of Makefile 182