# DIESE VERDAMMTEN ABHNGIGKEITEN STIMMEN VORNE UND HINTEN NICHT!
.silent
.erase

AFLAGS = /l /o c+,at+ /zd
CFLAGS = -O3 -c -Wall
LFLAGS = /m /X$$80100000
CC     = ccpsx
LINK   = psylink

all: .symbolic main.exe

clean: .symbolic
  if exist *.obj del *.obj

main_objs = main.obj sincos.obj engine.obj loadlwo.obj  &
            enginea.obj logo.obj util.obj part1.obj part2.obj &
            bin.obj part3.obj part4.obj part5.obj part6.obj &
            part7.obj part8.obj part9.obj endpart.obj

 # achtung!! auch im .lnk-eintragen!!
main_libs = libc.lib libcard.lib libgpu.lib libgte.lib libpress.lib libsnd.lib libapi.lib libc2.lib libcd.lib libetc.lib libsn.lib libspu.lib libmath.lib libcomb.lib libmcrd.lib libpad.lib
# libgs.lib 

gen_objs = gen.obj

gen.obj: engine.h gen.cpp

bin.obj: bin.asm
   asmpsx /l /o c+,at+ /zd bin.asm,bin.obj

enginea.obj: enginea.asm offsets.asm

main.exe: $(main_objs)
  echo $@
  $(LINK) @main.lnk,main.cpe,main.sym,main.map
  cpe2x /CE main.cpe

help.exe: help.cpp
  echo $@
  wcl386 help.cpp

gen.bin: $(gen_objs) engine.h gen.cpp
  echo $@
  $(LINK) @gen.lnk,gen.cpe,gen.sym,gen.map
  del gen.bin
  ren gen.cpe gen.bin

offsets.asm: gen.bin help.exe offsets.lst
  help > offsets.asm

.cpp.obj:
  echo $*.cpp
  $(CC) $(CFLAGS) -o $*.obj $*.cpp

.c.obj:
  echo $*.c
  $(CC) $(CFLAGS) -o $*.obj $*.c 

#.asm.obj:
#  echo $*.asm
#  $(ASM) $(AFLAGS) $*.asm,$*.obj

.asm.obj:
  $(CC) -Wall -c -x assembler-with-cpp $*.asm -o $*.obj
