2 # Higanbana Project makefile
\r
5 # Possible optimizations for 8088 class processors
\r
7 # -oa Relax alias checking
\r
8 # -ob Try to generate straight line code
\r
9 # -oe - expand user functions inline (-oe=20 is default, adds lots of code)
\r
10 # -oh Enable repeated optimizations
\r
11 # -oi generate certain lib funcs inline
\r
12 # -oi+ Set max inline depth (C++ only, use -oi for C)
\r
13 # -ok Flowing of register save into function flow graph
\r
14 # -ol loop optimizations
\r
15 # -ol+ loop optimizations plus unrolling
\r
16 # -or Reorder for pipelined (486+ procs); not sure if good to use
\r
17 # -os Favor space over time
\r
18 # -ot Favor time over space
\r
19 # -ei Allocate an "int" for all enum types
\r
20 # -zp2 Allow compiler to add padding to structs
\r
21 # -zpw Use with above; make sure you are warning free!
\r
22 # -0 8088/8086 class code generation
\r
23 # -s disable stack overflow checking
\r
25 # -zk0u translate kanji to unicode... wwww
\r
26 # -zk0 kanji support~
\r
27 # -zkl current codepage
\r
31 #wwww will add these
\r
44 #IN=..$(DIRSEP)..$(DIRSEP)fdos$(DIRSEP)watcom2$(DIRSEP)h
\r
50 #EXMMTESTDIR=16$(DIRSEP)exmmtest$(DIRSEP)
\r
52 SRCLIB=$(SRC)lib$(DIRSEP)
\r
53 JSMNLIB=$(SRCLIB)jsmn$(DIRSEP)
\r
54 NYANLIB=$(SRCLIB)nyan$(DIRSEP)
\r
55 #EXMMLIB=$(SRCLIB)exmm$(DIRSEP)
\r
56 MODEXLIB=$(SRCLIB)modex16$(DIRSEP)
\r
57 MODEXLIB_=$(SRCLIB)modex$(DIRSEP)
\r
58 VGMSNDLIB=$(SRCLIB)vgmsnd$(DIRSEP)
\r
59 DOSLIB=$(SRCLIB)doslib$(DIRSEP)
\r
60 WCPULIB=$(SRCLIB)wcpu$(DIRSEP)
\r
64 BAKAPIFLAGS=-fh=bakapi.hed
\r
65 SFLAGS=-sg -st -of+ -zu -zdf -zff -zgf -k55808#60000#32768
\r
66 DFLAGS=-DTARGET_MSDOS=16 -DMSDOS=1 $(SFLAGS)
\r
67 ZFLAGS=-zk0 -zq -zc -zp8# -zm
\r
68 CFLAGS=$(AFLAGS) $(IFLAGS)-lr -l=dos -wo##wwww
\r
69 OFLAGS=-obmiler -out -oh -ei -zp8 -fpi87 -onac -ol+ -ok####x
\r
70 FLAGS=$(CFLAGS) $(OFLAGS) $(DFLAGS) $(ZFLAGS)
\r
73 DOSLIBEXMMOBJ = himemsys.$(OBJ) emm.$(OBJ)
\r
74 VGMSNDOBJ = vgmSnd.$(OBJ) 16_snd.$(OBJ)
\r
75 DOSLIBOBJ = adlib.$(OBJ) 8254.$(OBJ) 8259.$(OBJ) dos.$(OBJ) cpu.$(OBJ)
\r
76 16LIBOBJS = 16_in.$(OBJ) 16_mm.$(OBJ) wcpu.$(OBJ) 16_head.$(OBJ) 16_ca.$(OBJ) kitten.$(OBJ) 16_hc.$(OBJ) timer.$(OBJ)
\r
79 GFXLIBOBJS = modex16.$(OBJ) bitmap.$(OBJ) planar.$(OBJ) 16text.$(OBJ) bakapee.$(OBJ) scroll16.$(OBJ) 16render.$(OBJ) 16planar.$(OBJ)
\r
81 TESTEXEC = exmmtest.exe test.exe pcxtest.exe pcxtest2.exe test2.exe palettec.exe maptest.exe fmemtest.exe fonttest.exe fontgfx.exe scroll.exe vgmtest.exe inputest.exe palettel.exe planrpcx.exe
\r
83 #testemm.exe testemm0.exe fonttes0.exe miditest.exe sega.exe sountest.exe
\r
89 #game and bakapi executables
\r
91 16.exe: 16.$(OBJ) mapread.$(OBJ) jsmn.$(OBJ) $(16LIBOBJS) gfx.lib
\r
92 wcl $(FLAGS) $(16FLAGS) 16.$(OBJ) mapread.$(OBJ) jsmn.$(OBJ) $(16LIBOBJS) gfx.lib -fm=16.map
\r
96 #executable's objects
\r
98 16.$(OBJ): $(SRC)16.h $(SRC)16.c
\r
99 wcl $(FLAGS) -c $(SRC)16.c
\r
102 #non executable objects libraries
\r
104 16.lib: $(16LIBOBJS)# doslib.lib vgmsnd.lib
\r
105 wlib -b -q $(16LIBOBJS) $(16LIBOBJS)# doslib.lib vgmsnd.lib
\r
111 @$(REMOVECOMMAND) $(EXEC)
\r
112 @$(REMOVECOMMAND) *.$(OBJ)
\r