1# If this file has the name "Makefile.in" then it is a template for a 2# Makefile; to generate the actual Makefile, run "./configure", which 3# is a configuration script generated by the "autoconf" program. 4 5SHELL = /bin/sh 6 7LOBJS = column.o custom.o derived.o fileio.o field.o format.o \ 8 handler.o persist.o remap.o std.o store.o string.o table.o \ 9 univ.o view.o viewx.o 10 11PYOBJS = PyProperty.o PyRowRef.o PyStorage.o PyView.o PWOImp.o 12 13TSTOBJS = regress.o tbasic1.o tbasic2.o tcusto1.o tcusto2.o tdiffer.o \ 14 textend.o tformat.o tlimits.o tmapped.o tnotify.o tresize.o \ 15 tstore1.o tstore2.o tstore3.o tstore4.o tstore5.o 16 17DEMOS = demo dump myio 18 19LINK_SPECIAL_FLAGS = @LINK_SPECIAL_FLAGS@ @LIBS@ 20LINK_SPECIAL_FILES = @LINK_SPECIAL_FILES@ 21 22#---------- Autoconf settings, can be overriden as "make" args 23 24prefix = @prefix@ 25exec_prefix = @exec_prefix@ 26includedir = @includedir@ 27libdir = @libdir@ 28srcdir = @srcdir@ 29top_builddir = . 30 31python = python 32pyincludedir = @PY_INCLUDE_DIR@ 33pylibdir = @PY_LIB_DIR@ 34 35tclsh = tclsh 36tclincludedir = @TCL_INCLUDE_DIR@ 37tcllibdir = @TCL_LIB_DIR@ 38 39CXX_FLAGS = @CPPFLAGS@ @CXXFLAGS@ @MK_THREADS@ @SHLIB_CFLAGS@ \ 40 -I$(srcdir)/../include 41 42# Compiling without frame pointers can play tricks with exception handling 43# (e.g. in Mk4py). This does not affect standard operation, *only* errors. 44# Happens in gcc 2.95.3, it has been disabled for now (even though slower). 45#CXXFLAGS = -fomit-frame-pointer $(CXX_FLAGS) 46CXXFLAGS = $(CXX_FLAGS) 47#CXXFLAGS = -Dq4_CHECK $(CXX_FLAGS) 48#CXXFLAGS = -Wall -pedantic -Wno-unused $(CXX_FLAGS) 49 50CXX = @CXX@ 51INSTALL = @INSTALL@ 52INSTALL_DATA = @INSTALL_DATA@ 53INSTALL_PROGRAM = @INSTALL_PROGRAM@ 54LIB_SUFFIX = @LIB_SUFFIX@ 55SHLIB_SUFFIX = @SHLIB_SUFFIX@ 56SHLIB_LD = @SHLIB_LD@ 57SHLIB_FLAGS = @SHLIB_FLAGS@ 58STRIP_FLAGS = @STRIP_FLAGS@ 59LIBEXT = @LIBEXT@ 60EXEEXT = @EXEEXT@ 61DESTDIR= 62 63#---------- Do not change, shorthand only 64 65CXX_SWITCHES = $(CXXFLAGS) -I$(srcdir)/../src -I. 66CXX_SWITCHES_TCL = $(CXXFLAGS) -I$(tclincludedir)/generic -I$(tclincludedir) 67CXX_SWITCHES_PY = $(CXXFLAGS) -I$(srcdir)/../python/scxx -I$(pyincludedir) 68 69#---------- The targets normally specified when calling "make" 70 71all: @MK_TARGETS@ 72 73core: Makefile libmk4$(LIBEXT) $(DEMOS) 74 75tcl: Makefile Mk4tcl$(LIBEXT) 76 77python: Makefile Mk4py$(LIBEXT) 78 79test: Makefile libmk4$(LIBEXT) regress 80 test -d tests || mkdir tests 81 -test -d ../tests/ok/CVS && (test -d tests/CVS || mkdir tests/CVS) 82 test -f reversed || cp $(srcdir)/reversed . 83 ./regress 84 diff --exclude=.svn $(srcdir)/../tests/ok tests 85 86test-tcl: tcl 87 cd $(srcdir)/../tcl/test && $(tclsh) all.tcl 88 89test-python: python 90 $(python) $(srcdir)/../python/test/all.py 91 92install: @MK_INSTALL@ 93 94install-mk: libmk4$(LIBEXT) 95 mkdir -p $(DESTDIR)$(includedir) $(DESTDIR)$(libdir) 96 $(INSTALL_DATA) $(srcdir)/../include/mk4.h \ 97 $(srcdir)/../include/mk4.inl \ 98 $(srcdir)/../include/mk4str.h \ 99 $(srcdir)/../include/mk4str.inl $(DESTDIR)$(includedir) 100 $(INSTALL_PROGRAM) libmk4$(LIBEXT) $(DESTDIR)$(libdir) 101 if [ '${LIBEXT}' = '.a' ]; then ranlib $(DESTDIR)$(libdir)/libmk4.a; fi 102 103install-tcl: Mk4tcl$(LIBEXT) 104 mkdir -p $(DESTDIR)$(tcllibdir)/Mk4tcl 105 $(INSTALL_PROGRAM) Mk4tcl$(LIBEXT) $(DESTDIR)$(tcllibdir)/Mk4tcl 106 if [ '${LIBEXT}' = '.a' ]; then ranlib $(DESTDIR)$(tcllibdir)/Mk4tcl/Mk4tcl.a; fi 107 echo 'package ifneeded Mk4tcl 2.4.9.7 [list load [file join $$dir Mk4tcl$(LIBEXT)] Mk4tcl]' >$(DESTDIR)$(tcllibdir)/Mk4tcl/pkgIndex.tcl 108 109install-python: Mk4py$(LIBEXT) 110 mkdir -p $(DESTDIR)$(pylibdir) 111 $(INSTALL_PROGRAM) Mk4py$(LIBEXT) $(DESTDIR)$(pylibdir) 112 $(INSTALL_PROGRAM) $(srcdir)/../python/metakit.py $(DESTDIR)$(pylibdir) 113 114clean: 115 rm -f *$(LIBEXT) *.o 116 rm -f $(DEMOS) struct regress myfile.dat secret.dat 117 rm -rf tests/[a-z]* 118 119distclean: clean 120 rm -f Makefile config.h config.status config.log config.cache 121 122#---------- This defines what each of the targets does 123 124Makefile: $(srcdir)/Makefile.in config.status 125 $(SHELL) ./config.status 126 127config.status: $(srcdir)/configure 128 $(SHELL) ./config.status --recheck 129 130$(srcdir)/configure: $(srcdir)/configure.in 131 cd $(srcdir) && autoconf 132 133libmk4$(LIB_SUFFIX): $(LOBJS) 134 ar rcu $@ $(LOBJS) 135 ranlib $@ 136 137libmk4$(SHLIB_SUFFIX): $(LOBJS) $(LINK_SPECIAL_FILES) 138 $(SHLIB_LD) -o $@ $(LOBJS) $(LINK_SPECIAL_FLAGS) $(LDFLAGS) 139 140Mk4tcl$(LIB_SUFFIX): mk4tcl.o mk4too.o $(LOBJS) 141 ar rcu $@ mk4tcl.o mk4too.o $(LOBJS) 142 ranlib $@ 143 144Mk4tcl$(SHLIB_SUFFIX): mk4tcl.o mk4too.o $(LOBJS) $(LINK_SPECIAL_FILES) 145 $(SHLIB_LD) -o $@ mk4tcl.o mk4too.o \ 146 $(LOBJS) $(LINK_SPECIAL_FLAGS) $(LDFLAGS) 147 148Mk4py$(LIB_SUFFIX): $(PYOBJS) $(LOBJS) 149 ar cru $@ $(PYOBJS) $(LOBJS) 150 ranlib $@ 151 152Mk4py$(SHLIB_SUFFIX): $(PYOBJS) $(LOBJS) $(LINK_SPECIAL_FILES) 153 $(SHLIB_LD) -o $@ $(PYOBJS) $(LOBJS) $(LINK_SPECIAL_FLAGS) $(LDFLAGS) 154 155demo: $(srcdir)/../demos/demo.cpp libmk4$(LIBEXT) 156 $(CXX) $(CXX_SWITCHES) -o $@$(EXEEXT) \ 157 $(srcdir)/../demos/demo.cpp libmk4$(LIBEXT) @LIBS@ 158 159dump: $(srcdir)/../demos/dump.cpp libmk4$(LIBEXT) 160 $(CXX) $(CXX_SWITCHES) -o $@$(EXEEXT) \ 161 $(srcdir)/../demos/dump.cpp libmk4$(LIBEXT) @LIBS@ 162 163myio: $(srcdir)/../demos/myio.cpp libmk4$(LIBEXT) 164 $(CXX) $(CXX_SWITCHES) -o $@$(EXEEXT) \ 165 $(srcdir)/../demos/myio.cpp libmk4$(LIBEXT) @LIBS@ 166 167struct: $(srcdir)/../demos/struct.cpp 168 $(CXX) $(CXX_SWITCHES) -o $@$(EXEEXT) \ 169 $(srcdir)/../demos/struct.cpp -lmk4 @LIBS@ 170 171regress: $(TSTOBJS) libmk4$(LIBEXT) 172 $(CXX) $(CXX_SWITCHES) -o $@$(EXEEXT) $(TSTOBJS) libmk4$(LIBEXT) @LIBS@ 173 174#---------- Dependencies 175 176# Hack. 177# Configuration: HPUX, CXX=aCC, CC=cc, cpu PA-RISC 178# => Have to link this object file to satisfy symbols. 179# 180cpprt0_stubs.o: $(srcdir)/cpprt0_stubs.s 181 as -o $@ $? 182 183mk4tcl.o: $(srcdir)/../tcl/mk4tcl.cpp 184 $(CXX) -c $(CXX_SWITCHES_TCL) $? 185mk4too.o: $(srcdir)/../tcl/mk4too.cpp 186 $(CXX) -c $(CXX_SWITCHES_TCL) $? 187 188PyProperty.o: $(srcdir)/../python/PyProperty.cpp 189 $(CXX) -c $(CXX_SWITCHES_PY) $? 190PyRowRef.o: $(srcdir)/../python/PyRowRef.cpp 191 $(CXX) -c $(CXX_SWITCHES_PY) $? 192PyStorage.o: $(srcdir)/../python/PyStorage.cpp 193 $(CXX) -c $(CXX_SWITCHES_PY) $? 194PyView.o: $(srcdir)/../python/PyView.cpp 195 $(CXX) -c $(CXX_SWITCHES_PY) $? 196 197PWOImp.o: $(srcdir)/../python/scxx/PWOImp.cpp \ 198 $(srcdir)/../python/scxx/PWOBase.h \ 199 $(srcdir)/../python/scxx/PWOCallable.h \ 200 $(srcdir)/../python/scxx/PWOMSequence.h \ 201 $(srcdir)/../python/scxx/PWOMapping.h \ 202 $(srcdir)/../python/scxx/PWONumber.h \ 203 $(srcdir)/../python/scxx/PWOSequence.h 204 $(CXX) -c $(CXX_SWITCHES_PY) $(srcdir)/../python/scxx/PWOImp.cpp 205 206column.o: $(srcdir)/../src/column.cpp 207 $(CXX) -c $(CXX_SWITCHES) $? 208custom.o: $(srcdir)/../src/custom.cpp 209 $(CXX) -c $(CXX_SWITCHES) $? 210derived.o: $(srcdir)/../src/derived.cpp 211 $(CXX) -c $(CXX_SWITCHES) $? 212field.o: $(srcdir)/../src/field.cpp 213 $(CXX) -c $(CXX_SWITCHES) $? 214fileio.o: $(srcdir)/../src/fileio.cpp 215 $(CXX) -c $(CXX_SWITCHES) $? 216format.o: $(srcdir)/../src/format.cpp 217 $(CXX) -c $(CXX_SWITCHES) $? 218handler.o: $(srcdir)/../src/handler.cpp 219 $(CXX) -c $(CXX_SWITCHES) $? 220persist.o: $(srcdir)/../src/persist.cpp 221 $(CXX) -c $(CXX_SWITCHES) $? 222remap.o: $(srcdir)/../src/remap.cpp 223 $(CXX) -c $(CXX_SWITCHES) $? 224std.o: $(srcdir)/../src/std.cpp 225 $(CXX) -c $(CXX_SWITCHES) $? 226store.o: $(srcdir)/../src/store.cpp 227 $(CXX) -c $(CXX_SWITCHES) $? 228string.o: $(srcdir)/../src/string.cpp 229 $(CXX) -c $(CXX_SWITCHES) $? 230table.o: $(srcdir)/../src/table.cpp 231 $(CXX) -c $(CXX_SWITCHES) $? 232univ.o: $(srcdir)/../src/univ.cpp 233 $(CXX) -c $(CXX_SWITCHES) $? 234view.o: $(srcdir)/../src/view.cpp 235 $(CXX) -c $(CXX_SWITCHES) $? 236viewx.o: $(srcdir)/../src/viewx.cpp 237 $(CXX) -c $(CXX_SWITCHES) $? 238 239regress.o: $(srcdir)/../tests/regress.cpp 240 $(CXX) -c $(CXX_SWITCHES) $? 241tbasic1.o: $(srcdir)/../tests/tbasic1.cpp 242 $(CXX) -c $(CXX_SWITCHES) $? 243tbasic2.o: $(srcdir)/../tests/tbasic2.cpp 244 $(CXX) -c $(CXX_SWITCHES) $? 245tcusto1.o: $(srcdir)/../tests/tcusto1.cpp 246 $(CXX) -c $(CXX_SWITCHES) $? 247tcusto2.o: $(srcdir)/../tests/tcusto2.cpp 248 $(CXX) -c $(CXX_SWITCHES) $? 249tdiffer.o: $(srcdir)/../tests/tdiffer.cpp 250 $(CXX) -c $(CXX_SWITCHES) $? 251textend.o: $(srcdir)/../tests/textend.cpp 252 $(CXX) -c $(CXX_SWITCHES) $? 253tformat.o: $(srcdir)/../tests/tformat.cpp 254 $(CXX) -c $(CXX_SWITCHES) $? 255tlimits.o: $(srcdir)/../tests/tlimits.cpp 256 $(CXX) -c $(CXX_SWITCHES) $? 257tmapped.o: $(srcdir)/../tests/tmapped.cpp 258 $(CXX) -c $(CXX_SWITCHES) $? 259tnotify.o: $(srcdir)/../tests/tnotify.cpp 260 $(CXX) -c $(CXX_SWITCHES) $? 261tresize.o: $(srcdir)/../tests/tresize.cpp 262 $(CXX) -c $(CXX_SWITCHES) $? 263tstore1.o: $(srcdir)/../tests/tstore1.cpp 264 $(CXX) -c $(CXX_SWITCHES) $? 265tstore2.o: $(srcdir)/../tests/tstore2.cpp 266 $(CXX) -c $(CXX_SWITCHES) $? 267tstore3.o: $(srcdir)/../tests/tstore3.cpp 268 $(CXX) -c $(CXX_SWITCHES) $? 269tstore4.o: $(srcdir)/../tests/tstore4.cpp 270 $(CXX) -c $(CXX_SWITCHES) $? 271tstore5.o: $(srcdir)/../tests/tstore5.cpp 272 $(CXX) -c $(CXX_SWITCHES) $? 273 274#---------- End 275