# This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # You may obtain a copy of the Licence at # http://www.gnu.org/licences/lgpl.html # # As a special exception this file can also be included in modules # with other source code as long as that source code has been # released under an Open Source Initiative certificed licence. # More information about OSI certification can be found at: # http://www.opensource.org # # This module is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public Licence for more details. # # This module was created by members of the firebird development # team. All individual contributions remain the Copyright (C) of # those individuals and all rights are reserved. Contributors to # this file are either listed below or can be obtained from a CVS # history command. # # Created by: Mark O'Donohue # # Contributor(s): # # # $Id: Makefile.in.jrd,v 1.3 2002-09-24 13:01:12 eku Exp $ # ROOT=../.. include $(ROOT)/src/make.platform include $(ROOT)/src/make.rules include $(ROOT)/src/make.defaults include $(ROOT)/src/make.shared.variables @SET_MAKE@ # jrd has it's own rule for using gpre to use gpre boot. # I would eventually like to set these based on a determination # if the file GPRE_STATIC exists or not. GPRE_FLAGS = -n -z -gds_cxx -raw -ids #.e.c: # $(GPRE_BOOT) $(GPRE_FLAGS) $< $@ # #.epp.cpp: # $(GPRE_BOOT) $(GPRE_FLAGS) $< $@ .PHONY: jrd_boot # This is the very first library built it contains just enough methods # to enable a gpre_boot program to built. BOOT_Sources = dsc.cpp gds.cpp isc_ipc.cpp isc.cpp dls.cpp BOOT_Objects = $(BOOT_Sources:%.cpp=$(OBJ)/%.o) jrd_boot : $(LIB)/jrd_boot.a $(LIB)/jrd_boot.a: $(BOOT_Objects) -$(RM) $@ $(AR) $@ $^ -$(RANLIB) $@ $(CHMOD_6) $@ # Add all the jrd objects to the jrd static library. $(LIBGDS_A) : $(GDSLIB_Objects) ar -q $@ $^ -$(RANLIB) $@ # This is the first dynamic link library that we build in phase2 it still # does not contain security objects. Also used to produce the object files # that the *_static programs link against. jrdlib_dependencies: $(JRD_Objects) $(OS_SPECIFIC_Objects) # The jrdlib_main will equate to either the libgds.so or libgds.a # depending upon choices made in make.rules and prefix.xxx where # xxx is plaform. jrdlib_main : $(LIBGDS_LA) #jrdlib_main : $(LIBGDS_SO) $(LIBGDS_A) $(LIBGDS_SO) : $(GDSLIB_Objects) $(LIB_LINK) $(LIBGDS_LINK_OPTIONS) -o $@ $^ -$(LN) $(@F) $(LIBGDS_SO_X_LNK) -$(LN) $(notdir $(LIBGDS_SO_X_LNK)) $(LIBGDS_SO_LNK) $(LIBGDS_A) : $(GDSLIB_Objects) $(STATICLIB_LINK) $(LIBGDS_LINK_OPTIONS) $@ $^ #____________________________________________________________________________ # # Everything below here is crap - well maybe that's an overstatement :-). # It comes from the original sfx.jrd file and I've left it here for now # for reference until I finish rewriting the super server make. CSI_FILES= $(OBJS)/csv/csi.o $(OBJS)/csv/css.o CSI_P_FILES= $(OBJS)/csv/csi.bin $(OBJS)/csv/css.bin DSQL_HEAD_MISC= $(OBJS)/dsql/array.o $(OBJS)/dsql/blob.o \ $(OBJS)/dsql/preparse.o \ $(OBJS)/dsql/user_dsql.o $(OBJS)/dsql/utld.o DSQL_J_HEAD_MISC= source/dsql/array.j source/dsql/blob.j \ source/dsql/preparse.j \ source/dsql/user_dsql.j source/dsql/utld.j JRD_CLIENT_P_OBJECTS= alt.bin cvt.bin dsc.bin dls.bin enc.bin gds.bin \ isc.bin isc_file.bin isc_ipc.bin isc_sync.bin \ perf.bin sch.bin sdl.bin thd.bin utl.bin \ why.bin # The infamous codes files CODES_FILES= $(OBJS)/firebird/include/gds_codes.pas \ $(OBJS)/firebird/include/gds_codes.ftn \ $(OBJS)/firebird/include/codes.h \ $(OBJS)/firebird/include/iberror.h \ $(OBJS)/firebird/include/codetext.h \ $(OBJS)/firebird/include/msgs.h \ $(OBJS)/firebird/include/rdb_codes.h \ $(OBJS)/firebird/include/sql_code.h \ $(OBJS)/firebird/include/msg_facs.h # Temporarily removing $(BACKEND_BRIDGE_MISC) from SUPER_OBJECTS # Also, whatever SUPER_OBJECTS includes should be forced to build under # the 'super_server_objects' target. Currently DSQL, LOCK, REMOTE, # WAL are included. INTL is not needed. SUPER_OBJECTS= $(DSQL_MISC) $(LOCK_MISC) \ $(REMOTE_MISC) \ $(INTL_MISC) $(WAL_MISC) $(ALICE_MISC) $(BURP_MISC) \ $(SECURITY_MISC) $(GSTAT_MISC) $(GSEC_MISC) $(UTIL_MISC) \ $(STDIO) HEAD_OBJECTS= $(OBJS)/pipe/head.o $(OBJS)/pipe/head5.o $(OBJS)/pipe/allp.o \ whyp.o utlp.o dls.o enc.o \ $(JRD_MISC) $(JRD_HEAD_MISC) $(DSQL_HEAD_MISC) \ $(PYXIS_MISC_OBJS) $(MERGE_MISC) $(SECURITY_MISC) HEAD_J_OBJECTS= head.j head5.j allp.j whyp.j utlp.j \ $(JRD_J_MISC) $(JRD_J_HEAD_MISC) $(DSQL_J_HEAD_MISC) \ $(MERGE_J_MISC) BRIDGE_P_MISC= $(OBJS)/pipe/head5.bin $(OBJS)/pipe/allp.bin FOOT_OBJECTS= $(FOOT_OBJECT) $(ALLP_OBJECT) ALLP_OBJECT= $(OBJS)/pipe/allp.o FOOT_OBJECT= $(OBJS)/pipe/foot.o # All objects necessary to have a minimal (but functional) engine statically # linked an executable. Used to create gbak_static and gpre_static, amoung # other things. ENGINE_STATIC_OBJS= \ $(JRD_OBJECTS) $(DSQL_MISC) \ $(LOCK_MISC) $(REMOTE_MISC) $(BRIDGE_MISC) \ $(INTL_MISC) $(WAL_MISC) \ $(WHY_O) all: gds.h $(GDSSHR) $(PIPE) gds_b.a source/./interbase/lib/gds_b.a $(GDSLIB_BACKEND): \ $(WHYBK_O) $(JRD_OBJECTS) $(OTHER_OBJECTS) -$(RM) gds_b.a $(AR) gds_b.a $(WHYBK_O) $(JRD_OBJECTS) $(OTHER_OBJECTS) -ranlib gds_b.a $(CHMOD_6) gds_b.a gds_ss.a source/./interbase/lib/gds_ss.a $(SUPER_BACKEND): \ gds.h $(WHYBK_O) $(JRD_OBJECTS) super_server_objects $(SUPER_OBJECTS) -$(RM) gds_ss.a $(AR) gds_ss.a $(WHYBK_O) $(JRD_OBJECTS) $(SUPER_OBJECTS) -ranlib gds_ss.a $(CHMOD_6) gds_ss.a gds_b.lib: $(WHYBK_O) $(JRD_OBJECTS) -$(RM) gds_b.lib $(IMPLIB) -out:gds_b.lib $(WHYBK_O) $(JRD_OBJECTS) $(IMPLIB) -out:gds_b.lib gds_b.lib $(OTHER_OBJECTS) $(TOUCH) gds_b.lib gdsshr.a $(AIX_GDSSHR) $(AIX_PPC_GDSSHR): gds_b.a gds.bind ld -bE:gds.bind -bM:SRE -H1024 $(GDSLIB_LINK) $(SCREEN_LIB) -lc -o gdsshr.o strip -t gdsshr.o -$(RM) gdsshr.a $(AR) gdsshr.a gdsshr.o -ranlib gdsshr.a $(CHMOD_6) gdsshr.a $(MV) gdsshr.a $(GDSSHR) -$(RM) gdsshr.o $(TOUCH) gdsshr.a $(CHMOD_6) gdsshr.a gdslib $(AP_GDSSHR) $(AX_GDSSHR): gds_b.a bind_gdslib nodebug.o -$(RM) gdslib /com/bind v4.0 customers # to recompile and relink. # In v4.0 we add a "gds.so.0" library which is really a pipe # client library. This is so existing 3.3 customers are # isolated from Solaris problems involving threads & signals. gds.so.solaris $(SOL_GDSSHR): gdsmt.so.0 gdspipe.so.0 gdsmt.so.0: \ $(JRD_P_OBJECTS) flu.bin $(CSI_P_MISC) $(DSQL_P_MISC) \ $(LOCK_P_MISC) \ $(REMOTE_P_MISC) $(SECURITY_P_MISC) $(BRIDGE_P_MISC) \ $(INTL_P_MISC) $(WAL_P_MISC) \ $(FUNCTIONS) -$(RM) gdsmt.so.0 ld $(LD_OPTS) libgdsmt.so.0 $(ZDEFS) $(JRD_P_OBJECTS) flu.bin \ $(CSI_P_MISC) $(DSQL_P_MISC) $(LOCK_P_MISC) \ $(REMOTE_P_MISC) $(SECURITY_P_MISC) $(BRIDGE_P_MISC) \ $(INTL_P_MISC) $(WAL_P_MISC) $(FUNCTIONS) \ $(GDSF_LIB) $(LD_LIBS) -o gdsmt.so.0 $(CHMOD_6) gdsmt.so.0 $(MV) gdsmt.so.0 $(GDSSHR) $(TOUCH) gdsmt.so.0 $(CHMOD_6) gdsmt.so.0 gdsf.so $(DG_FUNCSHR) $(DG_X86_FUNCSHR): functions.bin -$(RM) gdsf.so ld -G functions.bin -o gdsf.so $(CHMOD_6) gdsf.so $(MV) gdsf.so $(FUNCSHR) $(TOUCH) gdsf.so $(CHMOD_6) gdsf.so gdsshr_ss.dll: $(WIN_NT_SS_GDSSHR) $(TOUCH) gdsshr_ss.dll gdsshr.dll: $(WIN_NT_GDSSHR) $(TOUCH) gdsshr.dll gds32_nt_ms.dll: $(WHY_O) $(JRD_OBJECTS) gdsalias.o -$(RM) gds32.dll gds32.lib $(IMPLIB) -out:gds_temp.lib $(WHY_O) $(JRD_OBJECTS) $(IMPLIB) -out:gds_temp.lib gds_temp.lib $(DSQL_MISC) $(LOCK_MISC) $(REMOTE_MISC) $(WAL_MISC) \ $(SECURITY_MISC) $(IMPLIB) -out:gds32.lib -def:gds.bind gds_temp.lib $(LINK) $(LD_OPTS) -out:gds32.dll -dll -entry:_CRT_INIT$(DLLENTRY) gds_temp.lib gds32.exp $(CONLIBSDLL) $(WSOCKLIB) $(ADVAPILIB) $(MPRLIB) $(RM) gds_temp.lib $(RM) gds32.exp $(MV) gds32.lib gds32_ms.lib $(RM) gds32.lib implib gds32.lib gds32.dll tlib gds32.lib +- gdsalias.o $(MV) gds32.lib source\interbase\lib $(MV) gds32_ms.lib source\interbase\lib $(MV) gds32.dll source/interbase/bin $(RM) gds32.dll gds32.lib gds32_ms.lib $(TOUCH) gds32_nt_ms.dll gds32_nt_ms_ss.dll: $(WHY_O) $(JRD_OBJECTS) gdsalias.o -$(RM) gds32_ss.dll gds32_ss.lib gds32mss.lib $(IMPLIB) -out:gds_temp_ss.lib $(WHY_O) $(JRD_OBJECTS) $(IMPLIB) -out:gds_temp_ss.lib gds_temp_ss.lib $(DSQL_MISC) $(LOCK_MISC) $(REMOTE_MISC) $(WAL_MISC) \ $(SECURITY_MISC) $(IMPLIB) -out:gds32_ss.lib -def:gds.bind gds_temp_ss.lib $(LINK) $(LD_OPTS) -out:gds32_ss.dll -dll -entry:_CRT_INIT$(DLLENTRY) gds_temp_ss.lib gds32_ss.exp $(CONLIBSDLL) $(WSOCKLIB) $(ADVAPILIB) $(MPRLIB) $(RM) gds_temp_ss.lib $(RM) gds32_ss.exp $(MV) gds32_ss.lib gds32mss.lib $(RM) gds32_ss.lib implib gds32_ss.lib gds32_ss.dll tlib gds32_ss.lib +- gdsalias.o $(MV) gds32_ss.dll source/interbase/bin $(RM) gds32.dll $(TOUCH) gds32_nt_ms_ss.dll gdsalias.o: gdsalias.asm tasm32 gdsalias.asm gds32_nt_bc4.dll: $(WHY_O) $(JRD_OBJECTS) -$(RM) gds32.dll gds32.lib tmp.bind sed -e 's/DATA READ WRITE/DATA MULTIPLE/' -e 's/LIBRARY gds32/LIBRARY gds32 INITINSTANCE/' gds.bind > tmp.bind $(LINK) -Tpd -ap -c $(LD_OPTS) -w-inq -x /Lc:\bc4\lib c0d32 @gds.rsp,gds32.dll,,import32 cw32mt,tmp.bind implib gds32.lib gds32.dll $(MV) gds32.lib source\interbase\lib $(MV) gds32.dll source/interbase/bin $(RM) gds32.dll gds32.lib tmp.bind $(TOUCH) gds32_nt_bc4.dll gds32_os2_bc4.dll: $(WHY_O) $(JRD_OBJECTS) -$(RM) gds32.dll gds32.lib tmp.bind sed -e 's/DATA READ WRITE/DATA MULTIPLE NONSHARED/' -e 's/LIBRARY gds32/LIBRARY gds32 INITINSTANCE/' -e 's/\ \ \ \ /\ \ \ \ _/' gds.bind > tmp.bind $(LINK) -Tod -ap -c $(LD_OPTS) -x /Lc:\bcos2\lib;c:\tcpip\lib c02d @gds.rsp,gds32.dll,,os2 c2mt so32dll tcp32dll,tmp.bind implib gds32.lib gds32.dll $(MV) gds32.lib ..\interbase\lib $(MV) gds32.dll ..\interbase\bin $(RM) gds32.dll gds32.lib tmp.bind $(TOUCH) gds32_os2_bc4.dll gds32_os2_ibm.dll: $(WHY_O) $(JRD_OBJECTS) -$(RM) gds32.dll gds32.lib bind.tmp sed -e 's/DATA READ WRITE/DATA MULTIPLE NONSHARED/' -e 's/LIBRARY gds32/LIBRARY gds32 INITINSTANCE/' gds.bind > bind.tmp $(LINK) $(LD_OPTS) @gds.rsp,gds32.dll,,so32dll tcp32dll,bind.tmp c:\toolkt21\os2bin\implib gds32.lib gds32.dll $(MV) gds32.lib ..\interbase\lib $(MV) gds32.dll ..\interbase\bin $(RM) gds32.dll gds32.lib bind.tmp $(TOUCH) gds32_os2_ibm.dll event_print: print.o $(GDSLIB_BACKEND) $(LD) $(LINK_OPTS) -g print.o -o event_print $(GDSLIB_LINK) event_print.exe: print.o $(LD) $(DEBUG_LINK_OPTS) $(O_EXE_SWITCH)event_print print.o $(GDSLIB_LINK) gds.a: $(HEAD_OBJECTS) $(NOLINK_MACHINES) -$(RM) gds.a $(AR) gds.a $(HEAD_OBJECTS) -ranlib gds.a $(CHMOD_6) gds.a $(MV) gds.a $(HEAD_LIB) $(TOUCH) gds.a $(CHMOD_6) gds.a # Solaris specific shared library that invokes a pipe-server interface # to isolate clients that might use signals from threads. # Note that its internal library name is libgds.so for compatibility # with existing applications. gdspipe.so.0: $(HEAD_J_OBJECTS) -$(RM) gdspipe.so.0 -$(RM) gds.so.0 ld $(LD_OPTS) libgds.so.0 $(HEAD_J_OBJECTS) $(LD_LIBS_J) \ -o gds.so.0 $(CHMOD_6) gds.so.0 $(MV) gds.so.0 $(PIPE_GDSSHR) $(TOUCH) gdspipe.so.0 $(CHMOD_6) gdspipe.so.0 # The Solaris version of gds.a uses the .j objects as they have # been compiled in non-Thread mode. The .j objects are PIC code # which isn't optimal, but will function fine. gds.a.solaris: $(HEAD_J_OBJECTS) -$(RM) gds.a.solaris $(AR) gds.a $(HEAD_J_OBJECTS) -ranlib gds.a $(CHMOD_6) gds.a $(MV) gds.a $(HEAD_LIB) $(TOUCH) gds.a.solaris $(CHMOD_6) gds.a.solaris # JMB MERGE_MISC (merge.o) is already in the shlib with REMOTE_P_OBJECTS. # allp.bin already in the shared library. ($(ALLP_OBJECT)) # So don't link in with executable. gds_pipe: $(FOOT_OBJECTS) $(WHYPS_O) $(GDSSHR) \ $(GDSLIB_BACKEND) $(NOLINK_MACHINES) -$(RM) gds_pipe gdsshr_pipe $(LD) $(LINK_OPTS) $(FOOT_OBJECT) \ $(T_SWITCH) $(T_SWITCH) \ $(WHYPS_O) -o gds_pipe $(SERVER_LINK) $(CHMOD_7) gds_pipe $(MV) gds_pipe $(FOOT) $(TOUCH) gds_pipe $(CHMOD_6) gds_pipe bridge.unix: gds_pipe -$(RM) gds_pipe5 $(LD) $(LINK_OPTS) $(FOOT_OBJECTS) -o gds_pipe5 $(GDSLIB_LINK) $(CHMOD_7) gds_pipe5 gds_pipe.a: $(FOOT_OBJECTS) $(NOLINK_MACHINES) -$(RM) gds_pipe.a $(AR) gds_pipe.a $(FOOT_OBJECTS) -ranlib gds_pipe.a $(CHMOD_6) gds_pipe.a $(MV) gds_pipe.a $(FOOT_LIB) $(TOUCH) gds_pipe.a $(CHMOD_6) gds_pipe.a includes.msg: $(OBJS)/msgs/indicator.incl -$(RM) includes.msg $(TOUCH) includes.msg $(CHMOD_6) includes.msg super_server_objects: force $(CD) $(OBJS)/dsql && $(MAKE) CFLAGS="$(CFLAGS)" SYSTEM="$(SYSTEM)" dsql_objects $(CD) $(OBJS)/lock && $(MAKE) CFLAGS="$(CFLAGS)" SYSTEM="$(SYSTEM)" lock $(CD) $(OBJS)/remote && $(MAKE) CFLAGS="$(CFLAGS)" SYSTEM="$(SYSTEM)" rem_objects $(CD) $(OBJS)/wail && $(MAKE) CFLAGS="$(CFLAGS)" SYSTEM="$(SYSTEM)" wal_objects super_client_objects: $(JRD_CLIENT_P_OBJECTS) -$(RM) super_client_objects $(TOUCH) super_client_objects $(CHMOD_6) super_client_objects debug_objects: grammar.o dbg.o dbt.o dmp.o nolink_machines: source/pipe/allp.c source/pipe/foot.c source/pipe/head.c $(CP) $? . -$(RM) nolink_machines $(TOUCH) nolink_machines $(CHMOD_6) nolink_machines run_codes: $(CODES_FILES) # We should be compiling and running codes here, but we will do that # later!!! # -$(SH) '$(CMP) $(OBJS)/jrd/iberror.h $(OBJS)/firebird/include/iberror.h; if [ $$? != 0 ]; then $(CP) $(SOURCE)/jrd/iberror.h $(OBJS)/firebird/include/iberror.h; fi' $(CODES_FILES): touch $@ -$(CP) $(SOURCE)/jrd/gen/$(@F) $@ #____________________________________________________________________________ # # Rebuild the codes generates in the src/jrd/boot_codes directory # this target updates the values stored in the source path if they are # different to the newly generated entries. # # There are also blrtable.h and ids.h which are generated as well. # Regeneration is a manual thing, and you will need to generated_headers: ensureRebuild rebuild_codes ../include/gen/blrtable.h ../include/gen/ids.h ensureRebuild: touch codes.epp touch blrtable.cpp touch relations.h rebuild_codes: codes ./codes $(ROOT)/src/include/gen codes: codes.o $(STDIO) $(LIBGDS_DEP) -$(RM) codes echo "Hello" $(EXE_LINK) $(LINK_OPTS) $(LIBGDS_LINK) $(CXX_INCLUDE_DIRS) $^ -o $@ $(LINK_LIBS) # $(EXE_LINK) $(LINK_OPTIONS) $(LIBGDS_LINK) $(CXX_INCLUDE_DIRS) -o codes $^ $(CHMOD_7) codes ../include/gen/blrtable.h: blrtable.cpp $(STDIO) $(EXE_LINK) $(LINK_OPTIONS $(CXX_INCLUDE_DIRS) $(VERSION_FLAG) $(LINK_OPTS) blrtable.cpp $(STDIO) $(LD_LIBS) -o blrtable -./blrtable > $@ -$(RM) blrtable ../include/gen/ids.h: ids.m relations.h m4 $< > ../include/gen/ids.h # Security requires a database to compile so it cannot be used until # after gpre_static and gbak have been built. The alt.cpp file has a # -DPHASE_1_NO_SECURITY macro that disables compilaton of security # components. So the early _boot and _static builds use the boot one and # the later ones rely on the complete alt.o. This is controlled by the # makefile building a different jrd/alt_use_sec.h at # BTW: Ann (and I think Jim as well) believe that the security # database has no business being applied at this level, and should be # removed or moved - MOD 22-7-2001 # The file alt.cpp can be built in two versions BOOT and normal, where # boot does not use the security database and the normal build does. # We build a different header file from alt_use_sec.h.pre in the boot and # the post boot stages of the build. build_alt_use_boot: alt_use_sec.h.pre sed '/^#undef PHASE_1_BUILD_NO_SECURITY_DB/s/undef/define/' < $^ > alt_use_sec.h build_alt_use_main: alt_use_sec.h.pre cp $^ alt_use_sec.h # The GPRE options passed in ar edifferent to the default ones so we have a # special rule. # Some of these you have to wonderabout, since here are a number of files # that use DATABASE FILENAME = 'ODS.RDB' but ODS.RDB does not exsit # For that reason all the .epp files in this directory are compiled # with the following options. # fun.epp they allow you to compile without having a database present. # The db file ODS.RDB (as used in fun.epp doesn't exist, and was not part # of the original 6.0 build). #blob_filter.cpp: blob_filter.epp # $(GPRE_BOOT) -lang_internal -n -manual -raw -O $< $@ #$(SRC)/codes.cpp: $(SRC)/codes.epp codes.cpp: $(SRC)/codes.epp msg.gdb $(GPRE) -n -manual -raw -string $< $@ msg.gdb: ln -fs $(SRC_ROOT)/refDatabases/msg.gdb msg.gdb #$(SRC)/fun.cpp: $(SRC)/fun.epp # $(GPRE) -n -gds -raw -ids $< $@ #____________________________________________________________________________ # These guys are the results of compiling files with different macros # defined and outputting them to differently named .o files. # BACKEND whybk.o: why.c $(CC) -c $(CFLAGS) $(VERSION_FLAG) -DBACKEND $< -o $@ # Special compiles of modules to omit parts not needed for pipe access utlp.o: utl.cpp $(CXX) -c $(CFLAGS) $(CXX_INCLUDE_DIRS) $(VERSION_FLAG) -DPIPE_CLIENT $< -o $@ utlp.j: utl.o $(CXX) -c $(PIC_J_CFLAGS) $(CXX_INCLUDE_DIRS) $(VERSION_FLAG) -DPIPE_CLIENT $< -o $@ whyp.o: why.c $(CC) -c $(CFLAGS) $(VERSION_FLAG) -DPIPE_CLIENT $< -o $@ whyp.j: why.o $(CC) -c $(PIC_J_CFLAGS) $(VERSION_FLAG) -DPIPE_CLIENT $< -o $@ # whyps.o is used for machines that have a gds_pipe executable with the # full backend linked in. It omits an interface to the V3 bridge, which # is included with the pipe client and not needed in the pipe server. whyps.o: why.o -$(RM) whyps.c $(CP) why.c whyps.c $(CC) -c $(CFLAGS) $(VERSION_FLAG) -DPIPE_SERVER_YVALUE whyps.c # SHARED BRIDGE iscb.o: isc.cpp $(CXX) -c $(CFLAGS) $(CXX_INCLUDE_DIRS) $(VERSION_FLAG) -DBRIDGE $< -o $@ iscb.bin: isc.cpp $(CXX) -c $(PIC_FLAGS) $(CXX_INCLUDE_DIRS) $(VERSION_FLAG) -DBRIDGE $< -o $@ # This is the one where dyn_def.epp produced dyn_def.cpp and then the sed # script is run to remove a component of it. This is pretty ugly, and even # if we have to live with it, the makefile should be changed to make the # dependencies clearer. $(SRC)/dyn_def.cpp : $(SRC)/dyn_def.epp $(SRC)/dyn_def.sed $(GPRE_BOOT) $(GPRE_FLAGS) $< $(GEN_SRC)/dyn_deffoo.cpp sed -f $(SRC)/dyn_def.sed $(GEN_SRC)/dyn_deffoo.cpp > $@ # This was the old dependancies. #$(BIN)/dyn_def.o: $(SRC)/dyn_def.cpp $(SRC)/dyn_def.sed # sed -f dyn_def.sed $< > dyn_deffoo.cpp # $(CXX) -c $(CFLAGS) $(CXX_INCLUDE_DIRS) $(VERSION_FLAG) dyn_deffoo.cpp # $(MV) dyn_deffoo.o dyn_def.bin # -$(RM) dyn_deffoo.cpp dyn_deffoo.o flu_non_dl.bin: flu.cpp $(CXX) -c $(PIC_FLAGS) $(CXX_INCLUDE_DIRS) $(VERSION_FLAG) -DNON_DL_COMPATIBLE -c $< -o flu_non_dl.cpp $(MV) flu_non_dl.o flu_non_dl.bin -$(RM) flu_non_dl.cpp head5.bin: head.cpp $(CXX) -c $(PIC_FLAGS) $(CXX_INCLUDE_DIRS) $(VERSION_FLAG) -DGDS_PIPE=\"bin/gds_pipe5\" $< -o $@ AllObjects = $(BOOT_Objects) $(JRD_Objects) $(OS_SPECIFIC_Objects) Dependencies = $(AllObjects:.o=.d) FORCE: -include $(Dependencies)