BIN = \rsxnt\bin
BINEMX = \rsxnt\binemx

CC = gcc -Zsmall-conv
RC = i:\mssdk\bin\rc.exe
RSRC = rsrc

CFLAGS = -O -Wall -Zrsx32 -I..\portinc
LDRSX = -s -Zrsx32
LDEMX = -s

.c.o:
        $(CC) -c $(CFLAGS) $<

all: \
	$(BIN)\makelib.exe \
        $(BINEMX)\makelib.exe \
        $(BIN)\pestack.exe \
        $(BINEMX)\pestack.exe \
        $(BIN)\reloc.exe \
        $(BINEMX)\reloc.exe \
        $(BIN)\rsxntopt.exe \
        $(BINEMX)\rsxntopt.exe \
        $(BIN)\lib2dll.exe \
        $(BINEMX)\lib2dll.exe \

#
# makelib: makes import lib
#
$(BIN)\makelib.exe: makelib.o dllexp.o makelib.res
        $(CC) $(LDRSX) -o $(BIN)\makelib.exe makelib.o dllexp.o
        $(RSRC) makelib.res $(BIN)\makelib.exe

$(BINEMX)\makelib.exe: makelib.o dllexp.o
        $(CC) $(LDEMX) -o $(BINEMX)\makelib.exe makelib.o dllexp.o

makelib.res: makelib.rc
        $(RC) makelib.rc

#
# lib2dll: build a dll from a library
#
$(BIN)\lib2dll.exe: lib2dll.o lib2dll.res
        $(CC) $(LDRSX) -o $(BIN)\lib2dll.exe lib2dll.o -lmoddef
        $(RSRC) lib2dll.res $(BIN)\lib2dll.exe

$(BINEMX)\lib2dll.exe: lib2dll.o
        $(CC) $(LDEMX) -o $(BINEMX)\lib2dll.exe lib2dll.o -lmoddef

lib2dll.res: lib2dll.rc
        $(RC) lib2dll.rc

#
# pestack: set stack size of executable
#
$(BIN)\pestack.exe: pestack.o pestack.res
        $(CC) $(LDRSX) -o $(BIN)\pestack.exe pestack.o
        $(RSRC) pestack.res $(BIN)\pestack.exe

$(BINEMX)\pestack.exe: pestack.o
        $(CC) $(LDEMX) -o $(BINEMX)\pestack.exe pestack.o

pestack.res: pestack.rc
        $(RC) pestack.rc

#
# reloc: relocate image base address
#
$(BIN)\reloc.exe: reloc.o reloc.res
        $(CC) $(LDRSX) -o $(BIN)\reloc.exe reloc.o
        $(RSRC) reloc.res $(BIN)\reloc.exe

$(BINEMX)\reloc.exe: reloc.o
        $(CC) $(LDEMX) -o $(BINEMX)\reloc.exe reloc.o

reloc.res: reloc.rc
        $(RC) reloc.rc

#
# rsxntopt: set options to file
#
$(BIN)\rsxntopt.exe: rsxntopt.o rsxntopt.res
        $(CC) $(LDRSX) -o $(BIN)\rsxntopt.exe rsxntopt.o
        $(RSRC) rsxntopt.res $(BIN)\rsxntopt.exe

$(BINEMX)\rsxntopt.exe: rsxntopt.o
        $(CC) $(LDEMX) -o $(BINEMX)\rsxntopt.exe rsxntopt.o

rsxntopt.res: rsxntopt.rc
        $(RC) rsxntopt.rc


#
#  INCLUDE FILES
#
makelib.c:      ..\portinc\ntbind.h makelib.h
dll2lib.c:      ..\portinc\ntbind.h
dllexp.c:       ..\portinc\ntbind.h makelib.h
pestack.c:      ..\portinc\ntbind.h
reloc.c:        ..\portinc\ntbind.h
rsxntopt.c:     ..\portinc\ntbind.h
