#
# Makefile for Rexx/gd Extension
#
# The variable 'srcdir' refers to the source-distribution, and can be set with
# the configure script by "--srcdir=DIR".
#

SHELL		= e:/gnu/bin/ksh.exe
THIS		= Makefile

MAKE=make

VER=10
VER_DOT=1.0
PACKAGE_DIR=RexxGd-$(VER_DOT)
PACKAGE_NAME=rexxgd

srcdir		= .
prefix		= /usr/local
exec_prefix	= ${prefix}
libdir		= $(exec_prefix)/lib
includedir		= $(exec_prefix)/include
docdir		= $(srcdir)/doc
thisdir		=f:/Temp/9/rexxgd10
commondir		= $(srcdir)/common

INSTALL		= $(srcdir)/install-sh

CC		= GCC
CFLAGS		=  -O2

CEXTRA =            
DEBUG =            
DEBUGGING =        
EEXTRA =           
OSAVE  =           .o.save
OBJ  =             o
EXE  =             
RXLIBPRE =         
RXLIBPST =         .dll
GETOPT  =          
DYN_COMP  =        -DDYNAMIC -Zdll
SYS_DEFS  =        
LIBS  =            
SHLIBS  =           
LD_RXLIB1  =       $(CC) -Zdll
LD_RXLIB2  =       -Le:/emx/lib -Lf:/os2tk45/lib -lrexx  -lm -ldl -lc -lgd -lpng -lz -lttf -ljpeg -lXpm -lwrap
DYNAMIC_LDFLAGS  = 
SHL_TARGETS  =     
O2SAVE  =          
O2SHO  =           
CC2O   =           -o $@
SAVE2O  =          
PURIFY =           
RXPACKEXPORTS =    rexxgdos2.def
RXPACKEXP =        rexxgdos2.def
OTHER_INSTALLS =   
BASE_INSTALL =     installbase
BASE_BINARY =      binarybase
USE_ABI =          
rexxtrans_lib_name=.

INCDIR		= $(srcdir) 
COMMONDIR = $(commondir)
CPPFLAGS	= -I. -I$(INCDIR) -I$(COMMONDIR) $(DEBUGGING) -DHAVE_CONFIG_H -D__OS2__ -DUSE_OS2REXX

CCFLAGS		= -c $(CFLAGS) $(CPPFLAGS) -IE:/EMX/INCLUDE

LINK		=  $(CC)
LDFLAGS		= $(DEBUG)  -Le:/emx/lib -Lf:/os2tk45/lib -lrexx  -lm -ldl e:/emx/lib/gd.a -lpng -lz -lttf -ljpeg -lXpm

################################################################################

H1=$(srcdir)/defines.h config.h
H2=$(commondir)/rxpack.h $(commondir)/rxdef.h $(srcdir)/rexxgd.h

################################################################################
all:	$(PACKAGE_NAME) $(SHL_TARGETS)

clean:
	-rm -f *.o *.sho $(PACKAGE_NAME)

distclean: clean
	-rm -f Makefile

mostlyclean: clean

realclean: distclean

#------------------------------------------------------------------------

CSRCFILES = $(PACKAGE_DIR)/getopt.c $(PACKAGE_DIR)/loader.c $(PACKAGE_DIR)/rexxgd.c $(PACKAGE_DIR)/common/rxpack.c $(PACKAGE_DIR)/rexxgdbase.c
CSRCFILESZIP = getopt.c loader.c rexxgd.c $(commondir)/rxpack.c rexxgdbase.c

HEADERS = $(PACKAGE_DIR)/defines.h $(PACKAGE_DIR)/common/rxdef.h $(PACKAGE_DIR)/common/rxpack.h $(PACKAGE_DIR)/apphead.h $(PACKAGE_DIR)/rexxgd.h
HEADERSZIP = defines.h $(commondir)/rxdef.h $(commondir)/rxpack.h apphead.h rexxgd.h

OFILES = loader.$(OBJ) rexxgd.$(OBJ) rxpack.$(OBJ) rexxgdbase.$(OBJ)

SHOFILES = rexxgd.sho rxpack.sho rexxgdbase.sho

# rexxgd
$(PACKAGE_NAME): $(OFILES) $(GETOPT)
	$(LINK) $(OFILES) $(XTRA_OBJS) -o $(PACKAGE_NAME) $(LDFLAGS)

# librexxgd.so
$(RXLIBPRE)$(PACKAGE_NAME)$(RXLIBPST): $(SHOFILES) $(RXPACKEXP)
	$(LD_RXLIB1) $(RXPACKEXPORTS) -o $@ $(SHOFILES) $(LD_RXLIB2)

#
# executable objects
#
rxpack.o: $(commondir)/rxpack.c $(H1) $(H2)
	$(CC) $(CCFLAGS) -o rxpack.o $(commondir)/rxpack.c

loader.o: $(srcdir)/loader.c $(H1) $(H2)
	$(CC) $(CCFLAGS) -o loader.o $(srcdir)/loader.c

rexxgd.o: $(srcdir)/rexxgd.c $(H1) $(H2)
	$(CC) $(CCFLAGS) -o rexxgd.o $(srcdir)/rexxgd.c

rexxgdbase.o: $(srcdir)/rexxgdbase.c $(H1) $(H2)
	$(CC) $(CCFLAGS) -o rexxgdbase.o $(srcdir)/rexxgdbase.c

getopt.o: $(srcdir)/getopt.c $(H1)
	$(CC) $(CCFLAGS) -o getopt.o $(srcdir)/getopt.c

#
# shared library objects
#
rxpack.sho : $(commondir)/rxpack.c $(H1) $(H2)
	$(O2SAVE)
	$(CC) $(CCFLAGS) $(CC2O) $(DYN_COMP) $(commondir)/rxpack.c
	$(O2SHO)
	$(SAVE2O)

rexxgd.sho : $(srcdir)/rexxgd.c $(H1) $(H2)
	$(O2SAVE)
	$(CC) $(CCFLAGS) $(CC2O) $(DYN_COMP) $(srcdir)/rexxgd.c
	$(O2SHO)
	$(SAVE2O)


rexxgdbase.sho : $(srcdir)/rexxgdbase.c $(H1) $(H2)
	$(O2SAVE)
	$(CC) $(CCFLAGS) $(CC2O) $(DYN_COMP) $(srcdir)/rexxgdbase.c
	$(O2SHO)
	$(SAVE2O)

#
# export file for AIX
#
$(PACKAGE_NAME).exp: $(srcdir)/rexxgdw32.def $(srcdir)/def2exp.rexx
	rexx $(srcdir)/def2exp.rexx $(srcdir)/rexxgdw32.def $(PACKAGE_NAME).exp


zip:
	cp $(commondir)/config.guess $(srcdir)
	cp $(commondir)/config.sub $(srcdir)
	zip rexxgd$(VER) README INSTALL TODO COPYING-LIB HISTORY $(CSRCFILESZIP) $(HEADERSZIP)
	zip rexxgd$(VER) Makefile.in configure config.h.in
	zip rexxgd$(VER) makefile.* file_id.* *.def *.ico *.rc
	zip rexxgd$(VER) config.guess config.sub install-sh
	zip rexxgd$(VER) aclocal.m4 configure.in def2exp.rexx
	zip rexxgd$(VER) demo/*.rexx demo/demoin.png
	zip rexxgd$(VER) doc/*.html

dist:
	cp $(commondir)/config.guess $(srcdir)
	cp $(commondir)/config.sub $(srcdir)
	(cd $(srcdir)/..; tar cvf - \
	$(PACKAGE_DIR)/README $(PACKAGE_DIR)/INSTALL $(PACKAGE_DIR)/TODO $(PACKAGE_DIR)/COPYING-LIB $(PACKAGE_DIR)/HISTORY $(CSRCFILES) $(HEADERS) \
	$(PACKAGE_DIR)/Makefile.in $(PACKAGE_DIR)/configure $(PACKAGE_DIR)/config.h.in \
	$(PACKAGE_DIR)/makefile.* $(PACKAGE_DIR)/file_id.* $(PACKAGE_DIR)/*.def $(PACKAGE_DIR)/*.ico $(PACKAGE_DIR)/*.rc \
	$(PACKAGE_DIR)/config.guess $(PACKAGE_DIR)/config.sub $(PACKAGE_DIR)/install-sh \
	$(PACKAGE_DIR)/aclocal.m4 $(PACKAGE_DIR)/configure.in $(PACKAGE_DIR)/def2exp.rexx \
	$(PACKAGE_DIR)/demo/*.rexx $(PACKAGE_DIR)/demo/demoin.png \
	$(PACKAGE_DIR)/doc/*.html \
	| gzip > $(PACKAGE_DIR).tar.gz)

install: $(BASE_INSTALL)

installbase: all
	$(INSTALL) -m 755 -d $(bindir)
	$(INSTALL) -m 755 -d $(libdir)
	$(INSTALL) -m 755 -d $(prefix)/rexx
	$(INSTALL) -c -m 755 ./$(PACKAGE_NAME) $(bindir)/$(PACKAGE_NAME)
	-$(INSTALL) -c -m 755 ./$(RXLIBPRE)$(PACKAGE_NAME)$(RXLIBPST) $(libdir)/$(RXLIBPRE)$(PACKAGE_NAME)$(RXLIBPST)
	./$(PACKAGE_NAME) $(srcdir)/preinst.rexx $(bindir)/$(PACKAGE_NAME) $(srcdir)/demo/rexxgddemo.rexx $(prefix)/rexx/rexxgddemo.rexx
	-chmod 755 $(prefix)/rexx/testgd.rexx

beosinstall: all
	$(INSTALL) -m 755 -d /boot/home/config/bin
	$(INSTALL) -m 755 -d /boot/home/config/add-ons/rexx
	$(INSTALL) -m 755 -c ./$(PACKAGE_NAME) /boot/home/config/bin/$(PACKAGE_NAME)
	$(INSTALL) -m 755 -c ./$(RXLIBPRE)$(PACKAGE_NAME)$(RXLIBPST) /boot/home/config/add-ons/rexx/$(RXLIBPRE)$(PACKAGE_NAME)$(RXLIBPST)
	$(INSTALL) -m 755 -c $(srcdir)/demo/rexxgddemo.rexx /boot/home/config/bin/rexxgddemo.rexx
	./$(PACKAGE_NAME) $(srcdir)/preinst.rexx /boot/home/config/bin/$(PACKAGE_NAME) $(srcdir)/demo/rexxgddemo.rexx /boot/home/config/bin/rexxgddemo.rexx
	-chmod 755 /boot/home/config/bin/testgd.rexx

binary: $(BASE_BINARY)

binarybase: all
	-rm -fr ./tmpdir
	-mkdir -p ./tmpdir/bin
	-mkdir -p ./tmpdir/lib
	-mkdir -p ./tmpdir/rexx
	-mkdir -p ./tmpdir/doc/rexxgd
	cp $(PACKAGE_NAME) ./tmpdir/bin
	cp $(RXLIBPRE)$(PACKAGE_NAME)$(RXLIBPST) ./tmpdir/lib
	-cp $(rexxtrans_lib_name) ./tmpdir/lib
	cp $(srcdir)/COPYING-LIB ./tmpdir/doc/rexxgd
	cp $(srcdir)/HISTORY ./tmpdir/doc/rexxgd
	cp $(srcdir)/INSTALL ./tmpdir/doc/rexxgd
	cp $(srcdir)/README ./tmpdir/doc/rexxgd
	cp $(srcdir)/TODO ./tmpdir/doc/rexxgd
	cp $(srcdir)/demo/rexxgddemo.rexx ./tmpdir/rexx/rexxgddemo.rexx
	(cd ./tmpdir; \
	tar cvf - * | gzip > ../$(PACKAGE_DIR).$(target).$(REXX_TARGET).$(CURSES_TARGET).tgz )

beosbinary: all
	-rm -fr ./tmpdir
	-mkdir -p ./tmpdir/bin
	-mkdir -p ./tmpdir/add-ons/rexx
	-mkdir -p ./tmpdir/doc/rexxgd
	cp $(PACKAGE_NAME) ./tmpdir/bin
	cp $(RXLIBPRE)$(PACKAGE_NAME)$(RXLIBPST) ./tmpdir/add-ons/rexx
	-cp $(rexxtrans_lib_name) ./tmpdir/add-ons/rexx
	cp $(srcdir)/COPYING-LIB ./tmpdir/doc/rexxgd
	cp $(srcdir)/HISTORY ./tmpdir/doc/rexxgd
	cp $(srcdir)/INSTALL ./tmpdir/doc/rexxgd
	cp $(srcdir)/README ./tmpdir/doc/rexxgd
	cp $(srcdir)/TODO ./tmpdir/doc/rexxgd
	cp $(srcdir)/demo/rexxgddemo.rexx ./tmpdir/rexx/rexxgddemo.rexx
	(cd ./tmpdir; \
	zip -r $(PACKAGE_DIR).BeOS.zip * )

