# Generated automatically from Makefile.in by configure. ############################################################################### # # Mpexpr-1.0 # Makefile.in for Mpexpr configure # # Copyright 1998 Tom Poindexter MPEXPR_VERSION = 1.0 MPEXPR_LIBVER = 10 SRC_DIR = /mnt/gmirror/ports/math/mpexpr/work/mpexpr-1.1/unix vpath % $(SRC_DIR)/../generic SHELL = /bin/sh ############################################################################### # # set the following defines as needed: prefix = /usr/local exec_prefix = /usr/local # alternative defs #prefix = /usr/local #exec_prefix = /usr/local #------------------------------------------------------------------------------ # define where Mpexpr should put binaries, libraries, and mapages # BIN_DIR = $(exec_prefix)/bin LIB_DIR = $(exec_prefix)/lib MAN_DIR = $(prefix)/man MANN_DIR = $(MAN_DIR)/mann #------------------------------------------------------------------------------ # define where Tcl include and libraries are located # Mpexpr assumes that Tcl, Tk (and possibly Extended Tcl) are installed # in the same locations TCL_INC_DIR = /usr/local/include/tcl8.4 TCL_LIB_DIR = /usr/local/lib #------------------------------------------------------------------------------ # Pull in debugging flag TCL_DBGX = TK_DBGX = #------------------------------------------------------------------------------ # define Tcl, Tk, TclX libraries and extra libs TCL_VERSION = 8.4 TK_VERSION = TCL_LIB_SPEC = -L/usr/local/lib -ltcl8.4${TCL_DBGX} TCL_LIBS = -framework CoreFoundation TK_LIB_SPEC = TK_LIBS = TK_XINCLUDES = TK_XLIBSW = TCLX_LIB_SPEC = TCLX_LIBS = TCLX_LIB_LOC = TCLX_LIB_SEP = / TKX_LIB_SPEC = TKX_LIBS = # grab the versions from TclX, needed to find TclX appinit files TCLX_FULL_VERSION = TKX_FULL_VERSION = #------------------------------------------------------------------------------ # compiler and flags from tcl config, so don't change CC # without some thought, otherwise you might break the shared flags. CC = cc #CC = purify -cache-dir=pure_cache -chain-length="13" cc OPT_FLAG = -O #OPT_FLAG = -g TCL_DEFS = $(OPT_FLAG) -DHAVE_LIMITS_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_COREFOUNDATION=1 -DMAC_OSX_TCL=1 -DTCL_WIDE_INT_TYPE=long\ long -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_STRTOLL=1 -DHAVE_STRTOULL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_GMTIME_R=1 -DHAVE_LOCALTIME_R=1 -DHAVE_TM_GMTOFF=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DHAVE_SIGNED_CHAR=1 -DHAVE_PUTENV_THAT_COPIES=1 -DHAVE_LANGINFO=1 -DHAVE_COPYFILE_H=1 -DHAVE_COPYFILE=1 -DHAVE_LIBKERN_OSATOMIC_H=1 -DHAVE_OSSPINLOCKLOCK=1 -DHAVE_PTHREAD_ATFORK=1 -DUSE_VFORK=1 -DTCL_DEFAULT_ENCODING=\"utf-8\" -DTCL_LOAD_FROM_MEMORY=1 -DHAVE_AVAILABILITYMACROS_H=1 -DHAVE_FTS=1 -DHAVE_SYS_IOCTL_H=1 -DHAVE_SYS_FILIO_H=1 TCL_LD_FLAGS = -prebind -headerpad_max_install_names -Wl,-search_paths_first TCL_SHLIB_SUFFIX = .dylib TCL_SHLIB_CFLAGS = -fno-common TCL_SHLIB_LD = ${CC} -dynamiclib ${CFLAGS} ${LDFLAGS} -Wl,-single_module TCL_SHLIB_LD_LIBS = ${LIBS} #------------------------------------------------------------------------------ # define names for Mpexpr tclsh/tcl executable TCL_EXEC = tclsh8.4 TCLX_EXEC = tcl #------------------------------------------------------------------------------ # define name for Mpexpr wish/wishx executable WISH_EXEC = wish8.4 WISHX_EXEC = wishx #------------------------------------------------------------------------------ # define names for Mpexpr library files, static and shared LIB_MPEXPR = libMpexpr$(MPEXPR_LIBVER).a LNK_MPEXPR = -lMpexpr$(MPEXPR_LIBVER) LIB_SH_MPEXPR = libMpexpr$(MPEXPR_LIBVER)$(TCL_SHLIB_SUFFIX) #------------------------------------------------------------------------------ # object files MPEXPR_OBJ = mpiface.o \ mpexpr.o \ mpparse.o \ mpformat.o \ qfunc.o \ qio.o \ qmath.o \ qmod.o \ qtrans.o \ zfunc.o \ zio.o \ zmath.o \ zmod.o \ zmul.o MPEXPR_SH_OBJ = shared/mpiface.o \ shared/mpexpr.o \ shared/mpparse.o \ shared/mpformat.o \ shared/qfunc.o \ shared/qio.o \ shared/qmath.o \ shared/qmod.o \ shared/qtrans.o \ shared/zfunc.o \ shared/zio.o \ shared/zmath.o \ shared/zmod.o \ shared/zmul.o #------------------------------------------------------------------------------ # OTHER_LD_SEARCH_FLAGS so that dynamic loader will look for other libraries # NOTE: these are hacked from TCL_LD_SEARCH_FLAGS, and may need tweaking # for a particular platform. LIB_INSTALL_DIR used in tcl7.5, # LIB_RUNTIME_DIR used in tcl7.5p1+. If your linker doesn't like a colon # separated path, then you will have to figure out what works, or # possible leave off the second lib. The inclusion of the Tcl lib dir is # for the occasion you are building a static lib, but a shared Tcl lib is # found during linking. LIB_INSTALL_DIR = /usr/local/lib/tcl8.4 LIB_RUNTIME_DIR = /usr/local/lib/tcl8.4 OTHER_LD_SEARCH_FLAGS = # Include tcl's cc flags for dynamic lib search path. This is in case you # are builing a static binary for Mpexpr, but have both static and dynamic # tcl libraries, of which the loader will probably prefer the dynamic verisons. # Without this flag, the resulting binary won't have lib search information. # Note that TCL_LD_SEARCH_FLAGS only works when LIB_RUNTIME_DIR has been set # as above. TCL_LD_SEARCH_FLAGS = #------------------------------------------------------------------------------ # define man page MAN_PAGE = mpexpr.n #------------------------------------------------------------------------------ # define ranlib command for systems that need it; touch otherwise RANLIB = : #------------------------------------------------------------------------------ # how to install INSTALL = /usr/bin/install -c -o root -g wheel INSTALL_PROGRAM = install -s -o root -g wheel -m 555 INSTALL_DATA = install -o root -g wheel -m 444 # # end of defines # ############################################################################### T_EXEC = ${TCL_EXEC} W_EXEC = all: libMpexpr10.dylib #------------------------------------------------------------------------------ # helper programs - determine endian and longbits # (the following was taken from David Bell's Makefile for 'calc' - tp) # Copyright (c) 1994 David I. Bell and Landon Curt Noll # Permission is granted to use, distribute, or modify this source, # provided that this copyright notice remains intact. # # Determine the byte order of your machine # # Big Endian: Amdahl, 68k, Pyramid, Mips, Sparc, ... # Little Endian: Vax, 32k, Spim (Dec Mips), i386, i486, ... # # If in doubt, leave BYTE_ORDER empty. This makefile will attempt to # use BYTE_ORDER in or it will attempt to run # the endian program. If you get syntax errors when you compile, # try forcing the value to be BIG_ENDIAN and run the calc regression # tests. (see the README file) If the calc regression tests fail, do # a make clobber and try LITTLE_ENDIAN. If that fails, ask a wizard # for help. # #BYTE_ORDER= #BYTE_ORDER= BIG_ENDIAN BYTE_ORDER= LITTLE_ENDIAN # Determine the number of bits in a long # # If in doubt, leave LONG_BITS empty. This makefile will run # the longbits program to determine the length. # #LONG_BITS= LONG_BITS= 32 #LONG_BITS= 64 endian: endian.c -@rm -f endian.o endian $(CC) $< -o $@ longbits: longbits.c -@rm -f longbits.o longbits $(CC) $< -o $@ calcendian.h: endian -@rm -f calcendian.h @echo 'forming calcendian.h' @echo '/*' > calcendian.h @echo ' * DO NOT EDIT -- generated by the Makefile' >> calcendian.h @echo ' */' >> calcendian.h @echo '' >> calcendian.h -@if test X"${BYTE_ORDER}" = X ; then \ if [ -f /usr/include/machine/endian.h ]; then \ echo '#include ' >> endian.h; \ else \ ./endian >> calcendian.h; \ fi; \ else \ echo "#define BYTE_ORDER ${BYTE_ORDER}" >> calcendian.h; \ fi @echo 'calcendian.h formed' longbits.h: longbits -@rm -f longbits.h @echo 'forming longbits.h' @echo '/*' > longbits.h @echo ' * DO NOT EDIT -- generated by the Makefile' >> longbits.h @echo ' */' >> longbits.h @echo '' >> longbits.h -@if test X"${LONG_BITS}" = X ; then \ ./longbits >> longbits.h; \ else \ echo "#define LONG_BITS ${LONG_BITS}" >> longbits.h; \ fi @echo 'longbits.h formed' #------------------------------------------------------------------------------ # how to build objects for mpexpr and libMpexpr C_OBJ = $(CC) -c -I$(TCL_INC_DIR) -I. -I$(SRC_DIR)/../generic $(TCL_DEFS) %.o: %.c longbits.h calcendian.h $(C_OBJ) @< C_SHOBJ = $(CC) $(TCL_SHLIB_CFLAGS) -c -I$(TCL_INC_DIR) \ -I.. -I$(SRC_DIR)/../generic $(TCL_DEFS) shared/%.o: %.c longbits.h calcendian.h mkdir -p shared (cd shared; $(C_SHOBJ) $< ) #------------------------------------------------------------------------------ # how to build objects for standard tcl $(LIB_MPEXPR): $(MPEXPR_OBJ) -@rm $(LIB_MPEXPR) ar cr $(LIB_MPEXPR) $(MPEXPR_OBJ) $(LIB_SH_MPEXPR): $(MPEXPR_SH_OBJ) (cd shared; \ $(TCL_SHLIB_LD) $(TCL_LD_SEARCH_FLAGS) \ -o ../$(LIB_SH_MPEXPR) $(MPEXPR_OBJ) \ $(TCL_LIB_SPEC) $(TCL_LIBS) \ ) #------------------------------------------------------------------------------ # how to build objects for standard tcl TCL_APPINIT = $(TCL_LIB_DIR)/tcl$(TCL_VERSION)/tclAppInit.c TK_APPINIT = $(TCL_LIB_DIR)/tk$(TK_VERSION)/tkAppInit.c tclAppInit.c: $(TCL_APPINIT) sed -f mpinit.sed <$(TCL_APPINIT) >tclAppInit.c tkAppInit.c: $(TK_APPINIT) sed -f mpinit.sed <$(TK_APPINIT) >tkAppInit.c tclAppInit.o: tclAppInit.c $(CC) -c -I$(TCL_INC_DIR) $(TCL_DEFS) tclAppInit.c tkAppInit.o: tkAppInit.c $(CC) -c -I$(TCL_INC_DIR) $(TK_XINCLUDES) tkAppInit.c #------------------------------------------------------------------------------ # how to build objects for neosoft extended tcl TCLX_APPINIT = $(prefix)/$(TCLX_LIB_LOC)tclX$(TCLX_LIB_SEP)$(TCLX_FULL_VERSION)/tclXAppInit.c TKX_APPINIT = $(prefix)/$(TCLX_LIB_LOC)tkX$(TCLX_LIB_SEP)$(TKX_FULL_VERSION)/tkXAppInit.c tclXAppInit.c: $(TCLX_APPINIT) sed -f mpinit.sed <$(TCLX_APPINIT) >tclXAppInit.c tkXAppInit.c: $(TKX_APPINIT) sed -f mpinit.sed <$(TKX_APPINIT) >tkXAppInit.c tclXAppInit.o: tclXAppInit.c $(CC) -c -I$(TCL_INC_DIR) $(TCL_DEFS) tclXAppInit.c tkXAppInit.o: tkXAppInit.c $(CC) -c -I$(TCL_INC_DIR) $(TCL_DEFS) $(TK_XINCLUDES) tkXAppInit.c #------------------------------------------------------------------------------ # how to build executables and man page $(TCL_EXEC): $(LIB_MPEXPR) tclAppInit.o $(CC) tclAppInit.o $(TCL_LD_FLAGS) $(TCL_LD_SEARCH_FLAGS) \ -L. $(LNK_MPEXPR) \ $(TCL_LIB_SPEC) $(TCL_LIBS) \ -o $(TCL_EXEC) $(WISH_EXEC): $(LIB_MPEXPR) tkAppInit.o $(CC) tkAppInit.o $(TCL_LD_FLAGS) $(TCL_LD_SEARCH_FLAGS) \ -L. $(LNK_MPEXPR) \ $(TK_LIB_SPEC) $(TK_LIBS) \ $(TCL_LIB_SPEC) $(TCL_LIBS) \ -o $(WISH_EXEC) $(TCLX_EXEC): $(LIB_MPEXPR) tclXAppInit.o $(CC) tclXAppInit.o $(TCL_LD_FLAGS) $(TCL_LD_SEARCH_FLAGS) \ -L. $(LNK_MPEXPR) \ $(TCLX_LIB_SPEC) \ $(TCL_LIB_SPEC) $(TCLX_LIBS) $(TCL_LIBS) \ -o $(TCLX_EXEC) $(WISHX_EXEC): $(LIB_MPEXPR) tkXAppInit.o $(CC) tkXAppInit.o $(TCL_LD_FLAGS) $(TCL_LD_SEARCH_FLAGS) \ -L. $(LNK_MPEXPR) \ $(TKX_LIB_SPEC) $(TCLX_LIB_SPEC) \ $(TK_LIB_SPEC) $(TCL_LIB_SPEC) \ $(TK_LIBS) $(TKX_LIBS) $(TCLX_LIBS) $(TCL_LIBS) \ -o $(WISHX_EXEC) $(MAN_PAGE): $(SRC_DIR)/../doc/mpexpr.man cp $< $(MAN_PAGE) man-formatted: $(SRC_DIR)/../doc/mpexpr.man rman -f html $< > ../doc/mpexpr.html nroff -man $< > ../doc/mpexpr.txt groff -Tps -man $< > ../doc/mpexpr.ps #------------------------------------------------------------------------------ # test tests: test test: @if test -x "$(T_EXEC)" ; then \ echo running tests with ./$(T_EXEC) ; \ ./$(T_EXEC) ../tests/mpexpr.test ; \ ./$(T_EXEC) ../tests/mpformat.test ; \ else \ echo running tests with $(BIN_DIR)/tclsh$(TCL_VERSION) ; \ $(BIN_DIR)/tclsh$(TCL_VERSION) ../tests/mpexpr.test ; \ $(BIN_DIR)/tclsh$(TCL_VERSION) ../tests/mpformat.test ; \ fi #------------------------------------------------------------------------------ # install targets #install: install-shared install-man install-tools install: install-shared install-man install-shared: $(LIB_SH_MPEXPR) @echo installing $(LIB_SH_MPEXPR) $(INSTALL_PROGRAM) $(LIB_SH_MPEXPR) $(LIB_DIR)/$(LIB_SH_MPEXPR) @echo installing pkgIndex.tcl -mkdir $(LIB_DIR)/Mpexpr$(MPEXPR_LIBVER) $(INSTALL_DATA) pkgIndex.tcl $(LIB_DIR)/Mpexpr$(MPEXPR_LIBVER)/pkgIndex.tcl install-static: libMpexpr10.dylib $(LIB_MPEXPR) @for f in $(T_EXEC) $(W_EXEC) ; do \ if test -x $$f ; then \ echo installing $$f; \ $(INSTALL_PROGRAM) $$f $(BIN_DIR)/$$f ; \ fi ; \ done @echo installing $(LIB_MPEXPR) $(INSTALL_DATA) $(LIB_MPEXPR) $(LIB_DIR)/$(LIB_MPEXPR) install-man: $(MAN_PAGE) @echo installing $(MAN_PAGE) $(INSTALL_DATA) $(MAN_PAGE) $(MANN_DIR)/$(MAN_PAGE) install-tools: for file in mpksc ; do \ echo "installing $$file" ; \ if test "install-shared" = "install-shared" ; then \ echo '#!$(BIN_DIR)/wish$(TK_VERSION)' >$(BIN_DIR)/$$file ; \ else \ echo '#!$(BIN_DIR)/$(W_EXEC)' >$(BIN_DIR)/$$file ; \ fi ; \ cat ../samples/$$file >>$(BIN_DIR)/$$file ; \ chmod 755 $(BIN_DIR)/$$file ; \ done clean: rm -f $(T_EXEC) $(W_EXEC) $(MAN_PAGE) \ $(LIB_MPEXPR) $(LIB_SH_MPEXPR) \ endian longbits \ calcendian.h longbits.h \ tclXAppInit.c tkXAppInit.c tclXAppInit.o tkXAppInit.o \ tclAppInit.c tkAppInit.c tclAppInit.o tkAppInit.o \ *.o shared/*.o \ config.cache config.log really-clean: clean rm -f Makefile config.status install pkgIndex.tcl ############################################################################### # end of Makefile ###############################################################################