# $Id: Makefile,v 1.7 1995/09/01 13:23:07 skimu Exp skimu $
#  Makefile for X-SCM version 2.
#=============================================================================
#
#-------------------------------------------------------------------
# SCM
#
SCM_IMPL_PATH=/home/tsukuyomi/skimu/scm
#SCM_IMPL_PATH=/usr/local/scm
SCM=scmlit
#-------------------------------------------------------------------
# C compiler selection and option to generate position independent code 
# for dynamic loading.
# you need not PIC without dynl.c.
# See, SCM_IMPL_PATH/{dynl.c,scmflags.c}
#
#  **** HAVE_DYNL is not defined (without dynamic loader). *****
#CC=gcc
#PIC=
#LINKFLAG=
#DLD=-ldld
#EXTRAINITS=init_ioext\(\)\;init_posix\(\)\;init_socket\(\)\;init_rgx\(\)\;

# ***** HAVE_DYNL is defined (with dynamic loader). *****
# HP-UX cc.
CC=cc -Aa -Dunix -D_HPUX_SOURCE
#CC=cc
PIC=+z 
LINKFLAG=-Wl,-E
DLD=-ldld
EXTRAINITS=
# gcc
#CC=gcc
#PIC=-fpic
#LINKFLAG=
#DLD=-ldld
#EXTRAINITS=
#-------------------------------------------------------------------
# X11
#
# Definitions for X11R6 Athena widget set.
XINCPATH= -I/usr/X11R6/include
XLIBPATH= -L/usr/X11R6/lib
XAWLIB=   -lXaw -lXmu -lXt -lSM -lICE -lXext -lX11
# Definitions for X11R5 Athena widget set.
#XINCPATH= -I/usr/X11R5/include
#XLIBPATH= -L/usr/X11R5/lib
#XAWLIB=   -lXaw -lXmu -lXt -lXext -lX11

# Definitions for Motif widget set.
MINCPATH= -I/usr/include/Motif1.2 -I/usr/include/X11R5
MLIBPATH= -L/usr/lib/Motif1.2 -L/usr/lib/X11R5
MLIB= -lXm -lXt -lXext -lX11
#-------------------------------------------------------------------
# Xpm
#
# with  Xpm library.
XPM= -DHAVE_XPM
XPMLIB= -L/usr/X11R6/lib -lXpm
# with no Xpm library.
#XPM=
#XPMLIB=
#-------------------------------------------------------------------
#
#=============================================================================
#
CFLAGS=$(PIC) $(XINCPATH) -I$(SCM_IMPL_PATH) $(XPM)
#------------------------------------------------------------------
# Target
all : xawscm xmscm
#all : strvec.sl xaw.sl xm.sl 
#------------------------------------------------------------------
# Link version xawscm and xmscm.
# 
IMPLINIT = $(SCM_IMPL_PATH)/Init.scm
LIBSCM = $(SCM_IMPL_PATH)/libscm.a
AWINITS=-DINITS=$(EXTRAINITS)init_x\(\)\;init_xt\(\)\;init_xaw\(\)\;init_strvec\(\)
MFINITS=-DINITS=$(EXTRAINITS)init_x\(\)\;init_xt\(\)\;init_xm\(\)\;init_strvec\(\)
DFLAGS =-DIMPLINIT=\"$(IMPLINIT)\" 

xawscm:	xawscm.o x.o xt.o xaw.o strvec.o
	$(CC) $(LINKFLAG) -o $@  $^  $(XLIBPATH) $(XAWLIB) $(XPMLIB) $(LIBSCM) -lm $(DLD)
xmscm:	xmscm.o x.o xt-xm.o xm.o strvec.o
	$(CC) $(LINKFLAG) -o $@  $^  $(MLIBPATH) $(MLIB) $(XPMLIB) $(LIBSCM) -lm $(DLD)
xawscm.o : 
	$(CC) -c -o $@ $(DFLAGS) $(AWINITS) -I$(SCM_IMPL_PATH) $(SCM_IMPL_PATH)/scm.c
xmscm.o : 
	$(CC) -c -o $@ $(DFLAGS) $(MFINITS) -I$(SCM_IMPL_PATH) $(SCM_IMPL_PATH)/scm.c
#--------------------------------------------------------------------
# Shared libray for HP-UX.
#
strvec.sl : strvec.o
	ld -o strvec.sl -b strvec.o -lc

xaw.sl : x.o xt.o xaw.o
	ld -o xaw.sl -b x.o xt.o xaw.o $(XLIBPATH) $(XAWLIB) $(XPMLIB) -lm

xm.sl : x.o xt-xm.o xm.o
	ld -o xm.sl -b x.o xt-xm.o xm.o $(MLIBPATH) $(MOTIFLIB) $(XPMLIB) -lm
#--------------------------------------------------------------------
# dependencies
#
x.o : x.c xevent.h x.h version.h
xt.o : xt.c x.h xt.h strvec.h
xaw.o : xaw.c xt.h strvec.h
strvec.o : strvec.c strvec.h
xevent.h xevent.scm: xgen.scm
	$(SCM) xgen

xt-xm.o : xt.c xt.h
	$(CC) -c $(MINCPATH) $(CFLAGS) -DMOTIF xt.c -o xt-xm.o
xm.o : xm.c xt.h
	$(CC) -c $(MINCPATH) $(CFLAGS) -DMOTIF  xm.c

install.sl : xaw.sl xm.sl strvec.sl
	cp xaw.sl $(SCM_IMPL_PATH)/xaw.sl
	cp xm.sl $(SCM_IMPL_PATH)/xm.sl
	cp strvec.sl $(SCM_IMPL_PATH)/strvec.sl
#	cp x11.scm xt.scm xm.scm xaw.scm xmsubs.scm strvec.scm /usr/local/lib/slib
clean :
	rm  -f *.o *.sl xevent.h xevent.scm xawscm xmscm

