diff --git a/Makefile.in b/Makefile.in new file mode 100644 index 0000000000..36b77fb680 --- /dev/null +++ b/Makefile.in @@ -0,0 +1,6 @@ +@SET_MAKE@ + +all: firebird + +firebird firebird_super: + $(MAKE) -C src $@ diff --git a/configure b/configure index b7e83c0ec9..f4a6b4bd4c 100755 --- a/configure +++ b/configure @@ -2257,6 +2257,7 @@ esac + trap '' 1 2 15 @@ -2364,7 +2365,7 @@ src/make.rules:src/make.new/make.rules \ src/make.defaults:src/make.new/make.defaults \ src/make.platform:src/make.new/${MAKEFILE_PREFIX} \ src/make.shared.variables:src/make.new/make.shared.variables \ -src/fbutil/Makefile:src/fbutil/Makefile.in \ +src/fbutil/Makefile:src/make.new/Makefile.in.fbutil \ src/alice/Makefile:src/make.new/Makefile.in.alice \ src/burp/Makefile:src/make.new/Makefile.in.burp \ src/csv/Makefile:src/make.new/Makefile.in.csv \ @@ -2491,7 +2492,7 @@ src/make.rules:src/make.new/make.rules \ src/make.defaults:src/make.new/make.defaults \ src/make.platform:src/make.new/${MAKEFILE_PREFIX} \ src/make.shared.variables:src/make.new/make.shared.variables \ -src/fbutil/Makefile:src/fbutil/Makefile.in \ +src/fbutil/Makefile:src/make.new/Makefile.in.fbutil \ src/alice/Makefile:src/make.new/Makefile.in.alice \ src/burp/Makefile:src/make.new/Makefile.in.burp \ src/csv/Makefile:src/make.new/Makefile.in.csv \ @@ -2705,6 +2706,7 @@ cat >> $CONFIG_STATUS < +#endif + + +//----------------------------------------------------------------------------- +// +// The instance of the static class variable. +// + + +FirebirdConfig FirebirdConfig::sysConfig; + + +//----------------------------------------------------------------------------- +// +// +// + +void stripLeadingWhiteSpace(string& s) +{ + if (!s.size()) { + return; + } + + const string::size_type startPos = s.find_first_not_of(" \t"); + if (startPos == string::npos) { + s.erase(); // nothing but air + } else if (startPos) { + s = s.substr(startPos); + } +} + +//----------------------------------------------------------------------------- +// +// +// + +void stripTrailingWhiteSpace(string& s) +{ + if (!s.size()) { + return; + } + + string::size_type endPos = s.find_last_not_of(" \t"); + if (endPos != string::npos) { + // Note that endPos is the index to the last non-ws char + // why we have to inc. it + ++endPos; + s = s.substr(0, endPos); + } +} + +//----------------------------------------------------------------------------- +// +// +// + +void stripComments(string& s) +{ + // Note that this is only a hack. It won't work in case inputLine + // contains hash-marks embedded in quotes! Not that I know if we + // should care about that case. + const string::size_type commentPos = s.find('#'); + if (commentPos != string::npos) { + s = s.substr(0, commentPos); + } +} + +//----------------------------------------------------------------------------- +// +// +// + +string FirebirdConfig::getSysString(const string& key) { + return sysConfig.getString(key); +} + +//----------------------------------------------------------------------------- +// +// +// + +int FirebirdConfig::getSysInt(const string& key) { + return sysConfig.getInt(key); +} + + +//----------------------------------------------------------------------------- +// +// +// + +string FirebirdConfig::getString(const string& key) { + + mymap_t::iterator lookup; + + lookup = parameters.find(key); + + if (lookup != parameters.end()) { + return lookup->second; + } + + return string(); +} + +//----------------------------------------------------------------------------- +// +// +// + +int FirebirdConfig::getInt(const string& key) { + string data = getString(key); + + if (data.empty()) { + return 0; + } + + return atoi(data.data()); +} + + + +//----------------------------------------------------------------------------- +// +// +// + +string parseKeyFrom(const string& inputLine, string::size_type& endPos) { + + endPos = inputLine.find_first_of("= \t"); + if (endPos == string::npos) { + return inputLine; + } + + return inputLine.substr(0, endPos); +} + + + +//----------------------------------------------------------------------------- +// +// +// + +string parseValueFrom(string inputLine, string::size_type initialPos) { + + if (initialPos == string::npos) { + return string(); + } + + // skip leading white spaces + int startPos = inputLine.find_first_not_of("= \t", initialPos); + if (startPos == string::npos) { + return string(); + } + + stripTrailingWhiteSpace(inputLine); + return inputLine.substr(startPos); + +} + + +//----------------------------------------------------------------------------- +// +// +// + +void FirebirdConfig::loadSysConfig() { + sysConfig.loadConfig(); +} + +//----------------------------------------------------------------------------- +// +// +// + +void FirebirdConfig::loadConfig() { + + ifstream configFile("/etc/firebird.conf"); + + string inputLine; + + while (!configFile.eof()) { + getline(configFile, inputLine); + + stripComments(inputLine); + stripLeadingWhiteSpace(inputLine); + + if (!inputLine.size()) { + continue; // comment-line or empty line + } + + // cout << "read \"" << inputLine << "\"\n"; + + if (inputLine.find('=') == string::npos) { + cerr << "illegal line \"" << inputLine << "\"" << endl; + continue; + } + + string::size_type endPos; + + string key = parseKeyFrom(inputLine, endPos); + string value = parseValueFrom(inputLine, endPos); + + cout << "adding \"" << key << "\" \"" << value << "\"" << endl; +// parameters.insert(pair(key, value)); +// Just to display yet another template function + parameters.insert(make_pair(key, value)); + } +} + diff --git a/src/fbutil/FirebirdConfig.h b/src/fbutil/FirebirdConfig.h new file mode 100644 index 0000000000..a01202ca5f --- /dev/null +++ b/src/fbutil/FirebirdConfig.h @@ -0,0 +1,31 @@ + +#ifndef _FirebirdConfig_H +#define _FirebirdConfig_H + +#include +#include +#include +#include + + +class FirebirdConfig { +public: + static string getSysString(const string& key); + static int getSysInt(const string& key); + static void loadSysConfig(); + + void loadConfig(); + string getString(const string& key); + int getInt(const string& key); + +private: + typedef pair mypair; + typedef map mymap_t; + + mymap_t parameters; + + static FirebirdConfig sysConfig; + +}; + +#endif diff --git a/src/gpre/gpre.cpp b/src/gpre/gpre.cpp index 824ff46307..3e7a2b4f9c 100644 --- a/src/gpre/gpre.cpp +++ b/src/gpre/gpre.cpp @@ -20,7 +20,7 @@ // // All Rights Reserved. // Contributor(s): ______________________________________. -// $Id: gpre.cpp,v 1.4 2001-07-29 23:43:22 skywalker Exp $ +// $Id: gpre.cpp,v 1.5 2001-07-31 18:34:05 skywalker Exp $ // Revision 1.2 2000/11/16 15:54:29 fsg // Added new switch -verbose to gpre that will dump // parsed lines to stderr @@ -38,7 +38,7 @@ // //____________________________________________________________ // -// $Id: gpre.cpp,v 1.4 2001-07-29 23:43:22 skywalker Exp $ +// $Id: gpre.cpp,v 1.5 2001-07-31 18:34:05 skywalker Exp $ // #define GPRE_MAIN @@ -2745,10 +2745,20 @@ static void print_switches() IN_SW_TAB in_sw_tab; ib_fprintf(ib_stderr, "\tlegal switches are:\n"); - for (in_sw_tab = gpre_in_sw_table; in_sw_tab->in_sw; in_sw_tab++) - if (in_sw_tab->in_sw_text) + for (in_sw_tab = gpre_in_sw_table; in_sw_tab->in_sw; in_sw_tab++) { + if (in_sw_tab->in_sw_text) { ib_fprintf(ib_stderr, "%s%s\n", in_sw_tab->in_sw_name, in_sw_tab->in_sw_text); + } + } + + ib_fprintf(ib_stderr, "\n\tand the internal 'illegal' switches are:\n"); + for (in_sw_tab = gpre_in_sw_table; in_sw_tab->in_sw; in_sw_tab++) { + if (!in_sw_tab->in_sw_text) { + ib_fprintf(ib_stderr, "%s\n", in_sw_tab->in_sw_name); + } + } + } diff --git a/src/gpre/gpreswi.h b/src/gpre/gpreswi.h index 2602e940a0..b2d5c13732 100644 --- a/src/gpre/gpreswi.h +++ b/src/gpre/gpreswi.h @@ -19,7 +19,7 @@ * * All Rights Reserved. * Contributor(s): ______________________________________. - * $Id: gpreswi.h,v 1.2 2001-07-12 05:46:04 bellardo Exp $ + * $Id: gpreswi.h,v 1.3 2001-07-31 18:34:05 skywalker Exp $ * Revision 1.2 2000/11/16 15:54:29 fsg * Added new switch -verbose to gpre that will dump * parsed lines to stderr @@ -115,59 +115,59 @@ typedef struct sw_tab_t static struct in_sw_tab_t gpre_in_sw_table[] = { #ifdef ADA - IN_SW_GPRE_ADA , 0, "ADA" , 0, 0, 0, FALSE, 0, 0, "\t\textended ADA program", + {IN_SW_GPRE_ADA , 0, "ADA" , 0, 0, 0, FALSE, 0, 0, "\t\textended ADA program"}, #ifdef ALSYS_ADA - IN_SW_GPRE_ALSYS , 0, "ALSYS" , 0, 0, 0, FALSE, 0, 0, "\t\textended ADA program", + {IN_SW_GPRE_ALSYS , 0, "ALSYS" , 0, 0, 0, FALSE, 0, 0, "\t\textended ADA program"}, #endif - IN_SW_GPRE_HANDLES , 0, "HANDLES" , 0, 0, 0, FALSE, 0, 0, "\t\tADA handle package requires handle package name", + {IN_SW_GPRE_HANDLES , 0, "HANDLES" , 0, 0, 0, FALSE, 0, 0, "\t\tADA handle package requires handle package name"}, #endif - IN_SW_GPRE_C , 0, "C" , 0, 0, 0, FALSE, 0, 0, "\t\textended C program", - IN_SW_GPRE_CXX , 0, "CXX" , 0, 0, 0, FALSE, 0, 0, "\t\textended C++ program", - IN_SW_GPRE_CPLUSPLUS, 0, "CPLUSPLUS" , 0, 0, 0, FALSE, 0, 0, "\textended C++ program", - IN_SW_GPRE_D , 0, "DATABASE" , 0, 0, 0, FALSE, 0, 0, "\tdatabase declaration requires database name", - - IN_SW_GPRE_D_FLOAT , 0, "D_FLOAT" , 0, 0, 0, FALSE, 0, 0, "\t\tgenerate blr_d_float for doubles", - IN_SW_GPRE_E , 0, "EITHER_CASE" , 0, 0, 0, FALSE, 0, 0, "\taccept upper or lower case DML in C", + {IN_SW_GPRE_C , 0, "C" , 0, 0, 0, FALSE, 0, 0, "\t\textended C program"}, + {IN_SW_GPRE_CXX , 0, "CXX" , 0, 0, 0, FALSE, 0, 0, "\t\textended C++ program"}, + {IN_SW_GPRE_CPLUSPLUS, 0, "CPLUSPLUS" , 0, 0, 0, FALSE, 0, 0, "\textended C++ program"}, + {IN_SW_GPRE_D , 0, "DATABASE" , 0, 0, 0, FALSE, 0, 0, "\tdatabase declaration requires database name"}, + + {IN_SW_GPRE_D_FLOAT , 0, "D_FLOAT" , 0, 0, 0, FALSE, 0, 0, "\t\tgenerate blr_d_float for doubles"}, + {IN_SW_GPRE_E , 0, "EITHER_CASE" , 0, 0, 0, FALSE, 0, 0, "\taccept upper or lower case DML in C"}, #ifdef FORTRAN - IN_SW_GPRE_F , 0, "FORTRAN" , 0, 0, 0, FALSE, 0, 0, "\t\textended FORTRAN program", + {IN_SW_GPRE_F , 0, "FORTRAN" , 0, 0, 0, FALSE, 0, 0, "\t\textended FORTRAN program"}, #endif - IN_SW_GPRE_G , 0, "GDS" , 0, 0, 0, FALSE, 0, 0, NULL, - IN_SW_GPRE_GXX , 0, "GDS_CXX" , 0, 0, 0, FALSE, 0, 0, NULL, - IN_SW_GPRE_I , 0, "IDENTIFIERS" , 0, 0, 0, FALSE, 0, 0, NULL, - IN_SW_GPRE_I , 0, "IDS" , 0, 0, 0, FALSE, 0, 0, NULL, - IN_SW_GPRE_INTERP , 0, "CHARSET" , 0, 0, 0, FALSE, 0, 0, "\t\tDefault character set & format", - IN_SW_GPRE_INTERP , 0, "INTERPRETATION",0, 0, 0, FALSE, 0, 0, NULL, - IN_SW_GPRE_LANG_INTERNAL , 0, "LANG_INTERNAL" , 0, 0, 0, FALSE, 0, 0, "\tinternal language only", - IN_SW_GPRE_M , 0, "MANUAL" , 0, 0, 0, FALSE, 0, 0, "\t\tdo not automatically ATTACH to a database", - IN_SW_GPRE_N , 0, "NO_LINES" , 0, 0, 0, FALSE, 0, 0, "\tdo not generate C debug lines", - IN_SW_GPRE_O , 0, "OUTPUT" , 0, 0, 0, FALSE, 0, 0, "\t\tsend output to standard out", + {IN_SW_GPRE_G , 0, "GDS" , 0, 0, 0, FALSE, 0, 0, NULL}, + {IN_SW_GPRE_GXX , 0, "GDS_CXX" , 0, 0, 0, FALSE, 0, 0, NULL}, + {IN_SW_GPRE_I , 0, "IDENTIFIERS" , 0, 0, 0, FALSE, 0, 0, NULL}, + {IN_SW_GPRE_I , 0, "IDS" , 0, 0, 0, FALSE, 0, 0, NULL}, + {IN_SW_GPRE_INTERP , 0, "CHARSET" , 0, 0, 0, FALSE, 0, 0, "\t\tDefault character set & format"}, + {IN_SW_GPRE_INTERP , 0, "INTERPRETATION",0, 0, 0, FALSE, 0, 0, NULL}, + {IN_SW_GPRE_LANG_INTERNAL , 0, "LANG_INTERNAL" , 0, 0, 0, FALSE, 0, 0, "\tinternal language only"}, + {IN_SW_GPRE_M , 0, "MANUAL" , 0, 0, 0, FALSE, 0, 0, "\t\tdo not automatically ATTACH to a database"}, + {IN_SW_GPRE_N , 0, "NO_LINES" , 0, 0, 0, FALSE, 0, 0, "\tdo not generate C debug lines"}, + {IN_SW_GPRE_O , 0, "OUTPUT" , 0, 0, 0, FALSE, 0, 0, "\t\tsend output to standard out"}, #ifdef PASCAL - IN_SW_GPRE_P , 0, "PASCAL" , 0, 0, 0, FALSE, 0, 0, "\t\textended PASCAL program", + {IN_SW_GPRE_P , 0, "PASCAL" , 0, 0, 0, FALSE, 0, 0, "\t\textended PASCAL program"}, #endif - IN_SW_GPRE_PASSWORD , 0, "PASSWORD" , 0, 0, 0, FALSE, 0, 0, "\tdefault password", - IN_SW_GPRE_R , 0, "RAW" , 0, 0, 0, FALSE, 0, 0, "\t\tgenerate unformatted binary BLR", - IN_SW_GPRE_SQLDIALECT,0, "SQL_DIALECT" , 0, 0, 0, FALSE, 0, 0, "\tSQL dialect to use", - IN_SW_GPRE_S , 0, "STRINGS" , 0, 0, 0, FALSE, 0, 0, NULL, - IN_SW_GPRE_SQLDA , 0, "SQLDA" , 0, 0, 0, FALSE, 0, 0, "\t\t***** Deprecated feature. ********", - IN_SW_GPRE_T , 0, "TRACE" , 0, 0, 0, FALSE, 0, 0, NULL, - IN_SW_GPRE_USER , 0, "USER" , 0, 0, 0, FALSE, 0, 0, "\t\tdefault user name", + {IN_SW_GPRE_PASSWORD , 0, "PASSWORD" , 0, 0, 0, FALSE, 0, 0, "\tdefault password"}, + {IN_SW_GPRE_R , 0, "RAW" , 0, 0, 0, FALSE, 0, 0, "\t\tgenerate unformatted binary BLR"}, + {IN_SW_GPRE_SQLDIALECT,0, "SQL_DIALECT" , 0, 0, 0, FALSE, 0, 0, "\tSQL dialect to use"}, + {IN_SW_GPRE_S , 0, "STRINGS" , 0, 0, 0, FALSE, 0, 0, NULL}, + {IN_SW_GPRE_SQLDA , 0, "SQLDA" , 0, 0, 0, FALSE, 0, 0, "\t\t***** Deprecated feature. ********"}, + {IN_SW_GPRE_T , 0, "TRACE" , 0, 0, 0, FALSE, 0, 0, NULL}, + {IN_SW_GPRE_USER , 0, "USER" , 0, 0, 0, FALSE, 0, 0, "\t\tdefault user name"}, /* FSG 14.Nov.2000 */ - IN_SW_GPRE_VERBOSE , 0, "VERBOSE" , 0, 0, 0, FALSE, 0, 0, "\t\tVerbose Output to stderr", + {IN_SW_GPRE_VERBOSE , 0, "VERBOSE" , 0, 0, 0, FALSE, 0, 0, "\t\tVerbose Output to stderr"}, #ifdef VMS - IN_SW_GPRE_X , 0, "EXTERNAL" , 0, 0, 0, FALSE, 0, 0, "\t\tEXTERNAL database (used with /DATABASE)", + {IN_SW_GPRE_X , 0, "EXTERNAL" , 0, 0, 0, FALSE, 0, 0, "\t\tEXTERNAL database (used with /DATABASE)"}, #else - IN_SW_GPRE_X , 0, "X" , 0, 0, 0, FALSE, 0, 0, "\t\tEXTERNAL database (used with -DATABASE)", + {IN_SW_GPRE_X , 0, "X" , 0, 0, 0, FALSE, 0, 0, "\t\tEXTERNAL database (used with -DATABASE)"}, #endif #ifdef BASIC - IN_SW_GPRE_BAS , 0, "BASIC" , 0, 0, 0, FALSE, 0, 0, "\t\textended BASIC program", + {IN_SW_GPRE_BAS , 0, "BASIC" , 0, 0, 0, FALSE, 0, 0, "\t\textended BASIC program"}, #endif #ifdef PLI - IN_SW_GPRE_PLI , 0, "PLI" , 0, 0, 0, FALSE, 0, 0, "\t\textended PLI program", + {IN_SW_GPRE_PLI , 0, "PLI" , 0, 0, 0, FALSE, 0, 0, "\t\textended PLI program"}, #endif #ifdef COBOL - IN_SW_GPRE_COB , 0, "COB" , 0, 0, 0, FALSE, 0, 0, "\t\textended COBOL program", - IN_SW_GPRE_ANSI , 0, "ANSI" , 0, 0, 0, FALSE, 0, 0, "\t\tgenerate ANSI85 compatible COBOL", + {IN_SW_GPRE_COB , 0, "COB" , 0, 0, 0, FALSE, 0, 0, "\t\textended COBOL program"}, + {IN_SW_GPRE_ANSI , 0, "ANSI" , 0, 0, 0, FALSE, 0, 0, "\t\tgenerate ANSI85 compatible COBOL"}, #endif - IN_SW_GPRE_Z , 0, "Z" , 0, 0, 0, FALSE, 0, 0, "\t\tprint software version", - IN_SW_GPRE_0 , 0, NULL , 0, 0, 0, FALSE, 0, 0, NULL + {IN_SW_GPRE_Z , 0, "Z" , 0, 0, 0, FALSE, 0, 0, "\t\tprint software version"}, + {IN_SW_GPRE_0 , 0, NULL , 0, 0, 0, FALSE, 0, 0, NULL} }; diff --git a/src/make.new/Makefile.in.alice b/src/make.new/Makefile.in.alice index 6070e768cf..0248e7636b 100644 --- a/src/make.new/Makefile.in.alice +++ b/src/make.new/Makefile.in.alice @@ -26,7 +26,7 @@ # Contributor(s): # # -# $Id: Makefile.in.alice,v 1.1 2001-07-29 23:43:23 skywalker Exp $ +# $Id: Makefile.in.alice,v 1.2 2001-07-31 18:34:05 skywalker Exp $ # ROOT=../.. @@ -62,7 +62,7 @@ $(BIN)/gfix: $(ALICE_Objects) $(LIBGDS_LA) $(CHMOD_7) $@ -alice_meta.cpp: yachts.lnk alice_meta.epp +$(SRC)/alice_meta.cpp: yachts.lnk alice_meta.epp yachts.lnk: ln -fs ../refDatabases/empty.gdb yachts.lnk diff --git a/src/make.new/Makefile.in.fbutil b/src/make.new/Makefile.in.fbutil new file mode 100755 index 0000000000..196684ed0f --- /dev/null +++ b/src/make.new/Makefile.in.fbutil @@ -0,0 +1,72 @@ +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# Alternatively, the contents of this file may be used under the +# terms of the GNU General Public License Version 2 or later (the +# "GPL"), in which case the provisions of the GPL are applicable +# instead of those above. You may obtain a copy of the Licence at +# http://www.gnu.org/copyleft/gpl.html +# +# This program 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 +# Relevant for more details. +# +# This file was created by members of the firebird development team. +# All individual contributions remain the Copyright (C) of those +# individuals. Contributors to this file are either listed here or +# can be obtained from a CVS history command. +# +# All rights reserved. +# +# Created by: Mark O'Donohue +# +# Contributor(s): +# +# +# $Id: Makefile.in.fbutil,v 1.1 2001-07-31 18:34:05 skywalker Exp $ +# + +ROOT=../.. + +include $(ROOT)/src/make.rules +include $(ROOT)/src/make.defaults +include $(ROOT)/src/make.platform +include $(ROOT)/src/make.shared.variables + +@SET_MAKE@ + +AllObjects= $(FBUTIL_Objects) + +Dependancies=$(AllObjects:.o=.d) + + +.PHONY: all libs progs + + +jrd_static : $(LIB)/jrd_static.a($(FBUTIL_Objects)) + +$(LIB)/jrd_static.a(%.o) : %.o + ar crv $@ $% + + + +# In phase2 we add the same objects as before, we just rebuild them as +# portable and load them into a shared libgds.so library. + +.PHONY: jrdlib_dependencies + + +jrdlib_dependencies: $(FBUTIL_Objects) + + + +clean: + -rm $(AllObjects) + -rm $(Dependancies) + + +include $(Dependancies) + diff --git a/src/make.new/Makefile.in.firebird b/src/make.new/Makefile.in.firebird index ffa9c6d6e3..b10ef42e87 100644 --- a/src/make.new/Makefile.in.firebird +++ b/src/make.new/Makefile.in.firebird @@ -26,7 +26,7 @@ # Contributor(s): # # -# $Id: Makefile.in.firebird,v 1.1 2001-07-29 23:43:23 skywalker Exp $ +# $Id: Makefile.in.firebird,v 1.2 2001-07-31 18:34:05 skywalker Exp $ # ROOT=.. @@ -130,7 +130,7 @@ phase2 : $(ISC_GDB) $(ISC_GDB): utilities/isc4.sql utilities/isc4.gdl $(MAKE) phase2_build -phase2_build: create_db gds_lock_manager empty_db gbak_static \ +phase2_build: build_alt_use_boot create_db gds_lock_manager empty_db gbak_static \ ref_databases jrdlib_main gfix gbak gdef msgs isql \ isc4.gdb @@ -162,6 +162,7 @@ jrdlib_dependencies : $(MAKE) -C wal $@ $(MAKE) -C gpre $@ $(MAKE) -C utilities $@ + $(MAKE) -C fbutil $@ jrdlib_main: jrdlib_dependencies $(MAKE) -C jrd $@ diff --git a/src/make.new/Makefile.in.gpre b/src/make.new/Makefile.in.gpre index ab60916d5a..a9d52e5e61 100644 --- a/src/make.new/Makefile.in.gpre +++ b/src/make.new/Makefile.in.gpre @@ -26,7 +26,7 @@ # Contributor(s): # # -# $Id: Makefile.in.gpre,v 1.1 2001-07-29 23:43:23 skywalker Exp $ +# $Id: Makefile.in.gpre,v 1.2 2001-07-31 18:34:05 skywalker Exp $ # ROOT=../.. @@ -88,6 +88,11 @@ $(GPRE):$(GPRECommon_Objects) $(GPRE_Objects) $(LIBGDS_LA) +# gpre_meta needs a special boot build since there is no database. +$(SRC)/gpre_meta.cpp: $(SRC)/gpre_meta.epp + $(GPRE_BOOT) -lang_internal $(GPRE_FLAGS) $< $@ + + # In phase2 we add the same objects as before, we just rebuild them as # portable and load them into a shared libgds.so library. diff --git a/src/make.new/Makefile.in.jrd b/src/make.new/Makefile.in.jrd index 6ea34512f5..bb6bfe2c9a 100644 --- a/src/make.new/Makefile.in.jrd +++ b/src/make.new/Makefile.in.jrd @@ -26,7 +26,7 @@ # Contributor(s): # # -# $Id: Makefile.in.jrd,v 1.1 2001-07-29 23:43:23 skywalker Exp $ +# $Id: Makefile.in.jrd,v 1.2 2001-07-31 18:34:05 skywalker Exp $ # ROOT=../.. @@ -38,6 +38,21 @@ 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 jrd_static @@ -686,9 +701,24 @@ build_alt_use_main: alt_use_sec.h.pre # The GPRE options passed in ar edifferent to the default ones so we have a # special rule. -codes.cpp: codes.epp +# 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 $(GPRE) -n -manual -raw -string $< $@ +#$(SRC)/fun.cpp: $(SRC)/fun.epp +# $(GPRE) -n -gds -raw -ids $< $@ #____________________________________________________________________________ diff --git a/src/make.new/Makefile.in.remote b/src/make.new/Makefile.in.remote index 3027c5fec0..5cfebc9eb6 100644 --- a/src/make.new/Makefile.in.remote +++ b/src/make.new/Makefile.in.remote @@ -26,7 +26,7 @@ # Contributor(s): # # -# $Id: Makefile.in.remote,v 1.1 2001-07-29 23:43:23 skywalker Exp $ +# $Id: Makefile.in.remote,v 1.2 2001-07-31 18:34:05 skywalker Exp $ # ROOT=../.. @@ -54,7 +54,7 @@ LOCKDRIVER_Objects = $(LOCKDRIVER_Sources:%.cpp=$(OBJ)/%.o) AllObjects = $(INTERFACE_Objects) $(SERVER_Objects) $(INETSERVER_Objects) -Dependencies = $(All_Objects:.o=.d) +Dependencies = $(AllObjects:.o=.d) .PHONY: jrd_static diff --git a/src/make.new/Makefile.in.utilities b/src/make.new/Makefile.in.utilities index 5db207bd29..417bc897d4 100644 --- a/src/make.new/Makefile.in.utilities +++ b/src/make.new/Makefile.in.utilities @@ -26,7 +26,7 @@ # Contributor(s): # # -# $Id: Makefile.in.utilities,v 1.1 2001-07-29 23:43:23 skywalker Exp $ +# $Id: Makefile.in.utilities,v 1.2 2001-07-31 18:34:05 skywalker Exp $ # ROOT=../.. @@ -144,10 +144,16 @@ $(ISC_GDB) : isc4.sql isc4.gdl # security.epp file for building in the main process. It is done like # this to simpliy the build targets in the makefile. # +# Unfortunatly, we also need to touch the security.d to make it exist, +# otherwise as soon as we look at this makefile again it finds security.d +# missing and then touches the security.epp file, which of course means +# the .cpp file will be rebuilt from the .epp file, to circumvent this we +# touch the dependancy file. build_alt_use_boot: -$(RM) security.cpp touch security.cpp + touch $(DEP)/security.d build_alt_use_main: -$(RM) security.cpp @@ -232,6 +238,15 @@ yachts.lnk: ln -fs $(SRC)/refDatabases/empty.gdb yachts.lnk +# I was hoping one of these was going to allow me to compile security.epp +# without reference to an actual database, I heard it was possible with an +# options but haven't found it yet. I'll leave these here it case others +# want to experiment MOD 1-Aug-2001 +# +#security.cpp: security.epp +# $(GPRE) -n -manual -raw -strings $< $@ +# $(GPRE) -n -gds_cxx -raw -ids $< $@ + # This ain't ones that I need, so i've just copied it for the moment diff --git a/src/make.new/make.rules b/src/make.new/make.rules index 1c455ee43e..0cdc8d4019 100644 --- a/src/make.new/make.rules +++ b/src/make.new/make.rules @@ -26,7 +26,7 @@ # Contributor(s): # # -# $Id: make.rules,v 1.1 2001-07-29 23:43:23 skywalker Exp $ +# $Id: make.rules,v 1.2 2001-07-31 18:34:05 skywalker Exp $ # #____________________________________________________________________________ @@ -56,7 +56,6 @@ SRC_ROOT=$(ROOT)/src LIB=$(GEN_ROOT)/firebird/lib BIN=$(GEN_ROOT)/firebird/bin - # This picks up the current directory and maps it to the equivalent module # in the src and gen area. @@ -65,6 +64,8 @@ SRC=$(SRC_ROOT)/$(ModuleName) OBJ=$(GEN_ROOT)/$(ModuleName) DEP=$(OBJ) +GEN_SRC=$(SRC) # I would like to change this into generated area. + FIREBIRD=$(GEN_ROOT)/firebird INTERBASE=$(FIREBIRD) @@ -158,10 +159,11 @@ GPRE_FLAGS= -r -m -z -n .SUFFIXES: .c .e .epp .cpp .e.c: - $(GPRE_STATIC) $(GPRE_FLAGS) $< + $(GPRE_STATIC) $(GPRE_FLAGS) $< $@ + .epp.cpp: - $(GPRE_STATIC) $(GPRE_FLAGS) $< + $(GPRE_STATIC) $(GPRE_FLAGS) $< $@ @@ -185,10 +187,14 @@ $(OBJ)/%.o:: $(SRC)/%.c $(CC) $(CXXFLAGS) -c $(firstword $<) -o $@ @$(move-dep) -$(OBJ)/%.o:: $(SRC)/%.cpp +$(OBJ)/%.o: $(SRC)/%.cpp $(CXX) $(CXXFLAGS) -c $(firstword $<) -o $@ @$(move-dep) +#$(OBJ)/% +#.epp.cpp: +# $(GPRE_STATIC) $(GPRE_FLAGS) $< + $(OBJ)/%.o: $(DEP)/%.d .SUFFIXES: .epp .e @@ -201,13 +207,14 @@ $(DEP)/%.d:: $(SRC)/%.c @echo "need to rebuild $^" touch $^ +$(DEP)/%.d:: $(SRC)/%.epp + @echo "need to rebuild $^" + touch $^ + $(DEP)/%.d:: $(SRC)/%.cpp @echo "need to rebuild $^" touch $^ -$(DEP)/%.d:: $(SRC)/%.epp - @echo "need to rebuild $^" - touch $^ # code to move the dependancy files from the current directory diff --git a/src/make.new/make.shared.variables b/src/make.new/make.shared.variables index 6cf25d264b..bfd3addcea 100644 --- a/src/make.new/make.shared.variables +++ b/src/make.new/make.shared.variables @@ -129,6 +129,17 @@ SECURITY_Objects = $(SECURITY_Sources:%.cpp=$(GEN_ROOT)/utilities/%.o) SECURITY_SharedObjects = $(SECURITY_Objects:.o=.lo) +#________________________________________________________________________ +# +# fbutil + +FBUTIL_Sources=FirebirdConfig.cpp + +FBUTIL_Objects = $(FBUTIL_Sources:%.cpp=$(GEN_ROOT)/fbutil/%.o) +FBUTIL_SharedObjects = $(FBUTIL_Objects:.o=.lo) + + + #________________________________________________________________________ # @@ -143,7 +154,8 @@ GDSLIB_Objects = $(JRD_Objects) \ $(PIPE_Objects) \ $(WAL_Objects) \ $(GPRELIB_Objects) \ - $(SECURITY_Objects) + $(SECURITY_Objects) \ + $(FBUTIL_Objects) GDSLIB_SharedObjects = $(GDSLIB_Objects:.o=.lo) diff --git a/src/utilities/security.epp b/src/utilities/security.epp index 7fdd6913a3..ec8395d8e9 100644 --- a/src/utilities/security.epp +++ b/src/utilities/security.epp @@ -34,7 +34,9 @@ #include "../utilities/gsec.h" #include "../utilities/secur_proto.h" -DATABASE DB = STATIC FILENAME "isc.gdb"; +/* DATABASE DB = STATIC FILENAME "isc.gdb"; */ + +DATABASE DB = FILENAME "isc.gdb"; #define MAX_PASSWORD_LENGTH 31 #define SYSDBA_USER_NAME "SYSDBA"