Commit df95a0d8 authored by cvs2svn's avatar cvs2svn
Browse files

This commit was manufactured by cvs2svn to create tag 'COOL_0_0_1'.

git-svn-id: file:///git/lcgcool.svndb/cool/tags/COOL_0_0_1@572 4525493e-7705-40b1-a816-d608a930855b
parent c391f23f
Conditions Database project: config (SCRAM configuration) release notes
==============================================================================
!2004.08.12 - CONDDB-CONFIG_0_6_0
Tagged update for pre-release COOL_0_0_1.
Requires CONDDB-SCRAMTOOLBOX_0_3_1.
NB: Only tested for COOL_0_0_1 on rh73_gcc323.
==============================================================================
!2004.12.10 - no tag
Upgrade to SEAL_1_4_3 and POOL_1_8_2-alpha.
The POOL upgrade solves the bug with the third column=null in MyODBC.
==============================================================================
!2004.11.17 - no tag
Upgrade to POOL_1_8_0.
Configure Oracle and POOL for Mac assuming they are on /opt.
==============================================================================
!2004.11.11 - no tag
Update for initial COOL tests.
Upgrade to POOL_1_8_0-zeta with relational access for MySQL via ODBC.
Upgrade to SEAL_1_4_2.
Add configuration for tools unixodbc, myodbc and sqllite.
Only upgrade the HEAD version of RequirementsDoc.
Only test on rh73_gcc323 for COOL.
==============================================================================
!2004.08.12 - CONDDB-CONFIG_0_5_1
Update for internal release CONDDB_0_3_0-pre1.
Upgrade to POOL_1_8_0-delta with support for Oracle 10g in tool oracle.
Upgrade to SEAL_1_4_2_pre3.
Keep nominal support for cel3-i386_gcc323 even if CONDDB cannot be built
because POOL and SEAL are not yet built for these platforms either.
Drop rh73_ora9i_gcc323 platforms, build HvsRal on default architecture.
==============================================================================
!2004.08.12 - CONDDB-CONFIG_0_5_0
Completely new config infrastructure.
This contains EVERYTHING that makes up the POOL_1_7_0 config
infrastructure, with the following differences:
- Bootstrap and Requirements files, site directory: specific to CONDDB
- Add rh73_ora9i_gcc323.mk and rh73_ora9i_gcc323_dbg.mk for HvsRal
- BuildFile: add the two HvsRal platforms and change the header comments
- Project_makefile.mk: print out 'CONDDB built' instead of 'POOL built' :-)
- PackageTest_makefile.mk: minor bug fix (forwarded to POOL team)
NB Everything is copied, including the Examples and Utilities
Makefile fragments (but these have not been tested yet).
Update bootstrap files for public release CONDDB_0_2_1.
==============================================================================
!2004.08.12 - CONDDB-CONFIG_0_4_1
Add new packages CondDBCommon, DataCopy, Examples, Utilities to
bootstrap files. Add also HvsRal (commented out for the moment).
Commit everything before major changes in CONDDB-CONFIG_0_5_0
(copy everything in the POOL config area as of today).
==============================================================================
!2004.08.02
Upgrade to LCG_26_1 (requiring gcc 3.2.3 and MySQL 4.0.18) as in POOL_1_7_0.
Maintain support for rh73_gcc32 (use gcc3.2.3 tool with gcc3.2 tool config).
Introduce SCRAM_BASEPATH in the tool configuration file.
Add two new platforms rh73_ora9i_gcc323 and rh73_ora9i_gcc323_dbg,
to prototype Vakho's HVS using the POOL RelationalAccess layer.
Oracle 9i must be used because POOL_1_7_0 is built against Oracle 9i.
Require, select and configure POOL (and all the tools it needs) for these two
architectures. Note also that POOL_1_7_0 is not built on cel3-i386_gcc323.
- Select POOL in requirements files (POOL_1_7_0 from private SCRAMToolBox).
Configure POOL_1_7_0.
- Require and select SEAL, needed by POOL (SEAL_1_4_0 as in LCG_26_1).
Configure SEAL_1_4_0.
- Require and select sockets, needed by SEAL (1.0 as in LCG_26_1).
Do not configure sockets (as in POOL).
- Require and select pcre, needed by SEAL (4.4 as in LCG_26_1).
Configure pcre 4.4.
- Require and select uuid, needed by SEAL (1.32 as in LCG_26_1).
Configure uuid 1.32.
- Require and select BOOST, needed by SEAL (1.31.0 as in LCG_26_1).
Configure boost 1.31.0.
- Require and select oracle (9.2.0.4 as in LCG_26_1).
Do not configure oracle (as in POOL).
Note that this is only a runtime environment dependency:
there is no need for any <external ref> tag in any BuildFile.
==============================================================================
!2004.07.21 - CONDDB-CONFIG_0_4_0
Maintain support for rh73_gcc32.
Add support for rh73_gcc323 (use gcc3.2 tool with gcc3.2.3 tool config).
Add support for cel3-i386_gcc323.
Drop support for rh73_gcc2952, rh73_new_gcc32, rh73_new_gcc2952.
Include ConditionsDB package in bootstrap files.
Update bootstrap files for public release CONDDB_0_2_0.
Update requirements files for CONDDB-SCRAMTOOLBOX_0_2_0.
Update tool config for new platforms and new tool definition
(ORACLE_BASE is now the platform-dependent instant client installation).
Upgrade to LCG_23_1d (requiring gcc 3.2 and MySQL 4.0.13).
Remove MySQLpp from requirements files.
==============================================================================
!2004.05.04 - CONDDB-CONFIG_0_3_0
Use gcc323 installation of OCCI 10g for rh73_gcc32 and related SCRAM tags.
Keep rh73_new_gcc2952 tags with standard OCCI10g/gcc296 (build fails).
Keep rh73_new_gcc32 tags for OCCI9i/gcc32 if this should become available.
Update bootstrap files for public release CONDDB_0_1_1.
Update requirements files for CONDDB-SCRAMTOOLBOX_0_1_1.
==============================================================================
!2004.04.21 - CONDDB-CONFIG_0_2_0
Modified library and package test Makefile fragments to allow compilation
of .cxx files as weel as .cpp files in CondDBMySQL.
Select MySQL (4.0.13) tool for CondDBMySQL.
Include CondDBMySQL in bootstrap files.
Split Oracle and OCCI into two separate tools.
Moved Oracle to 'oracle' in the SPI ToolBox.
Adopt lowercase SPI convention for all Oracle based tools.
Select gcc3 tool from the SPI SCRAMToolBox.
Require [without selecting yet] POOL (1.6.1) and MySQLpp
(1.7.9_mysql.4.0.13) tools to start integration of POOL and CONDDB.
Update bootstrap files for public release CONDDB_0_1_0.
Define three types of bootstrap files: BootStrapFile (only SCRAM config),
BootStrapFileSRC (also sources), BootStrapFileALL (also documentation).
Each of them also exists (with .HEAD suffix) for the HEAD CVS version.
==============================================================================
!2004.03.25 - CONDDB-CONFIG_0_1_0
Update for internal release CONDDB_0_1_0-pre1.
Migration of CVS repository to the CVS service for LCG.
==============================================================================
!2004.03.22 - CONDDB-CONFIG_0_0_2
Update for internal release CONDDB_0_0_0-pre3.
Update to newer SCRAMToolBox with Oracle10 support.
Tests against Oracle10 can be performed by building software
using the rh73_new_gcc2952(_dbg) and rh73_new_gcc32(_dbg) tags.
NB: The order of tags in the scram configuration files is important
because scram performs some sort of pattern matching: the xxx_yyy tags
should follow the xxx tags in tools.conf, as otherwise scram would
use the xxx tool configuration in setting up the xxx_yyy tools.
[Thanks to Ioannis for pointing out this undocumented "feature" of scram!]
==============================================================================
!2004.02.25 - (not tagged)
Configuration to test the Oracle gcc3 OCCI library if it becomes available.
Upgrade Oracle from version 9.2.0 to version 9.2.0.4.
Include bootstrap files for HEAD version project CONDDB_HEAD
(BootStrapFile.HEAD and BootStrapFileSRC.HEAD).
==============================================================================
!2004.02.23 - CONDDB-CONFIG_0_0_1
Update for internal release CONDDB_0_0_0-pre2.
==============================================================================
!2003.11.25 - CONDDB-CONFIG_0_0_0
First release of SCRAM configuration for internal release CONDDB_0_0_0-pre1.
Copied most files from the POOL project SCRAM configuration
(thanks to Ioannis for his help).
==============================================================================
<doc type=Configuration::BootStrapProject version=1.0>
<project name=CONDDB version=CONDDB_0_3_0-pre1>
*************************************************************
CONDDB project bootstrap
*************************************************************
<Config dir=config>
<base url="cvs://conditionsdb.cvs.cern.ch/cvs/conditionsdb?auth=pserver&user=anonymous&version=CONDDB-CONFIG_0_5_1">
<download url="cvs:?module=conddb/config/scram" name="config">
<RequirementsDoc name=config/RequirementsDoc>
</base>
</project>
<doc type=Configuration::BootStrapProject version=1.0>
<project name=CONDDB version=CONDDB_HEAD>
*************************************************************
CONDDB project bootstrap
*************************************************************
<Config dir=config>
<base url="cvs://conditionsdb.cvs.cern.ch/cvs/conditionsdb?auth=pserver&user=anonymous&version=HEAD">
<download url="cvs:?module=conddb/config/scram" name="config">
<RequirementsDoc name=config/RequirementsDoc.HEAD>
</base>
</project>
<doc type=Configuration::BootStrapProject version=1.0>
<project name=CONDDB version=CONDDB_0_3_0-pre1>
*************************************************************
CONDDB project bootstrap with the sources
*************************************************************
<Config dir=config>
<base url="cvs://conditionsdb.cvs.cern.ch/cvs/conditionsdb?auth=pserver&user=anonymous&version=CONDDB_0_3_0-pre1">
<download url="cvs:?module=conddb/config/scram" name="config">
<download url="cvs:?module=conddb/ConditionsDB" name="src/ConditionsDB">
<download url="cvs:?module=conddb/CondDBCommon" name="src/CondDBCommon">
<download url="cvs:?module=conddb/CondDBOracle" name="src/CondDBOracle">
<download url="cvs:?module=conddb/CondDBMySQL" name="src/CondDBMySQL">
<download url="cvs:?module=conddb/DataCopy" name="src/DataCopy">
#<download url="cvs:?module=conddb/HvsRal" name="src/HvsRal">
<download url="cvs:?module=conddb/Examples" name="src/Examples">
<download url="cvs:?module=conddb/Utilities" name="src/Utilities">
<download url="cvs:?module=conddb/doc/www/CondDB" name="doc">
<RequirementsDoc name=config/RequirementsDoc>
</base>
</project>
<doc type=Configuration::BootStrapProject version=1.0>
<project name=CONDDB version=CONDDB_HEAD>
*************************************************************
CONDDB project bootstrap with the sources
*************************************************************
<Config dir=config>
<base url="cvs://conditionsdb.cvs.cern.ch/cvs/conditionsdb?auth=pserver&user=anonymous&version=HEAD">
<download url="cvs:?module=conddb/config/scram" name="config">
<download url="cvs:?module=conddb/ConditionsDB" name="src/ConditionsDB">
<download url="cvs:?module=conddb/CondDBCommon" name="src/CondDBCommon">
<download url="cvs:?module=conddb/CondDBOracle" name="src/CondDBOracle">
<download url="cvs:?module=conddb/CondDBMySQL" name="src/CondDBMySQL">
<download url="cvs:?module=conddb/DataCopy" name="src/DataCopy">
#<download url="cvs:?module=conddb/HvsRal" name="src/HvsRal">
<download url="cvs:?module=conddb/Examples" name="src/Examples">
<download url="cvs:?module=conddb/Utilities" name="src/Utilities">
<download url="cvs:?module=conddb/doc/www/CondDB" name="doc">
<RequirementsDoc name=config/RequirementsDoc.HEAD>
</base>
</project>
<doc type=Configuration::BootStrapProject version=1.0>
<project name=COOL version=COOL_0_0_1>
**************************************************************
COOL project bootstrap with the sources (COOL_0_0_1 version)
**************************************************************
<Config dir=config>
<base url="cvs://conditionsdb.cvs.cern.ch/cvs/conditionsdb?auth=pserver&user=anonymous&version=COOL_0_0_1">
<download url="cvs:?module=conddb/config/scram" name="config">
<download url="cvs:?module=conddb/contrib/CoolKernel" name="src/CoolKernel">
<download url="cvs:?module=conddb/contrib/RelationalCool" name="src/RelationalCool">
<RequirementsDoc name=config/RequirementsDoc>
</base>
</project>
<doc type=Configuration::BootStrapProject version=1.0>
<project name=COOL version=COOL_HEAD>
**************************************************************
*COOL project bootstrap with the sources (HEAD version)
*************************************************************
<Config dir=config>
<base url="cvs://conditionsdb.cvs.cern.ch/cvs/conditionsdb?auth=pserver&user=anonymous&version=HEAD">
<download url="cvs:?module=conddb/config/scram" name="config">
<download url="cvs:?module=conddb/contrib/CoolKernel" name="src/CoolKernel">
<download url="cvs:?module=conddb/contrib/RelationalCool" name="src/RelationalCool">
<RequirementsDoc name=config/RequirementsDoc.HEAD>
</base>
</project>
<doc type=Configuration::BootStrapProject version=1.0>
<project name=CONDDB version=CONDDB_0_3_0-pre1>
*************************************************************
CONDDB project bootstrap with the sources
*************************************************************
<Config dir=config>
<base url="cvs://conditionsdb.cvs.cern.ch/cvs/conditionsdb?auth=pserver&user=anonymous&version=CONDDB_0_3_0-pre1">
<download url="cvs:?module=conddb/config/scram" name="config">
<download url="cvs:?module=conddb/ConditionsDB" name="src/ConditionsDB">
<download url="cvs:?module=conddb/CondDBCommon" name="src/CondDBCommon">
<download url="cvs:?module=conddb/CondDBOracle" name="src/CondDBOracle">
<download url="cvs:?module=conddb/CondDBMySQL" name="src/CondDBMySQL">
<download url="cvs:?module=conddb/DataCopy" name="src/DataCopy">
#<download url="cvs:?module=conddb/HvsRal" name="src/HvsRal">
<download url="cvs:?module=conddb/Examples" name="src/Examples">
<download url="cvs:?module=conddb/Utilities" name="src/Utilities">
<RequirementsDoc name=config/RequirementsDoc>
</base>
</project>
<doc type=Configuration::BootStrapProject version=1.0>
<project name=CONDDB version=CONDDB_HEAD>
*************************************************************
CONDDB project bootstrap with the sources
*************************************************************
<Config dir=config>
<base url="cvs://conditionsdb.cvs.cern.ch/cvs/conditionsdb?auth=pserver&user=anonymous&version=HEAD">
<download url="cvs:?module=conddb/config/scram" name="config">
<download url="cvs:?module=conddb/ConditionsDB" name="src/ConditionsDB">
<download url="cvs:?module=conddb/CondDBCommon" name="src/CondDBCommon">
<download url="cvs:?module=conddb/CondDBOracle" name="src/CondDBOracle">
<download url="cvs:?module=conddb/CondDBMySQL" name="src/CondDBMySQL">
<download url="cvs:?module=conddb/DataCopy" name="src/DataCopy">
#<download url="cvs:?module=conddb/HvsRal" name="src/HvsRal">
<download url="cvs:?module=conddb/Examples" name="src/Examples">
<download url="cvs:?module=conddb/Utilities" name="src/Utilities">
<RequirementsDoc name=config/RequirementsDoc.HEAD>
</base>
</project>
#
# Top-level project BuildFile for the CONDDB project
# Based on the POOL project BuildFile (thanks to Ioannis!)
#
# This file is parsed by SCRAM before any other BuildFile.
#
# OS/Compiler specific options
<Architecture name=cel3-i386_gcc323>
<External ref=gcc3>
</Architecture>
<Architecture name=cel3-i386_gcc323_dbg>
<External ref=gcc3>
</Architecture>
<Architecture name=rh73_gcc323_dbg>
<External ref=gcc3>
</Architecture>
<Architecture name=rh73_gcc323_gcov>
<External ref=gcc3>
</Architecture>
<Architecture name=rh73_gcc323>
<External ref=gcc3>
</Architecture>
<Architecture name=rh73_gcc32_dbg>
<External ref=gcc3>
</Architecture>
<Architecture name=rh73_gcc32_gcov>
<External ref=gcc3>
</Architecture>
<Architecture name=rh73_gcc32>
<External ref=gcc3>
</Architecture>
<Architecture name=rh73_icc71_dbg>
<External ref=icc>
</Architecture>
<Architecture name=rh73_icc71>
<External ref=icc>
</Architecture>
<Architecture name=osx103_gcc33>
<External ref=OSXgcc>
</Architecture>
# Common options
INCLUDEDIRS = $(shell echo `$(PYTHONEXE) $(LOCALTOP)/$(projconfigdir)/filter_dirs.py $(INCLUDE)` )
LIBDIRS = $(shell echo `$(PYTHONEXE) $(LOCALTOP)/$(projconfigdir)/filter_dirs.py $(LIBDIR)` )
LIBS = $(shell echo `$(PYTHONEXE) $(LOCALTOP)/$(projconfigdir)/filter_dirs.py $(lib)` )
dictionaryGenerator:= $(shell echo `$(SCRAM) tool tag SEAL SEAL_BASE`)/src/Dictionary/DictionaryGenerator/scripts/lcgdict
gccxmlpath := $(shell echo `$(SCRAM) tool tag gccxml PATH`)
# Platform specific makefile fragments
include $(LOCALTOP)/$(projconfigdir)/$(SCRAM_ARCH).mk
# Set export behaviour. We don't automatically make libraries built within the
# project available to the whoile project, i.e. any libraries required must be
# explicitly demanded in the BuildFile at the required level:
scram_autoexport=false
# ---- The ClassPath: describe what should be done and where ---- #
#
# This builds the library of a package and its dictionary
<ClassPath path=+Project/+Package/src+library>
<ClassPath path=+Project/+Package/dict+dictLibrary>
# This builds all the unit tests of a package
<ClassPath path=+Project/+Package/tests+SubSystem/+PackageTest>
# This builds all the utilities of a package
<ClassPath path=+Project/+Package/utilities+Utility>
# This copies the scripts in the bin directory
<ClassPath path=+Project/+Package/scripts+Scripts>
# Integration/system test applications, libraries and dictionaries
<ClassPath path=+Project/Tests+SubSystem/+Package/src+Test>
<ClassPath path=+Project/Tests+SubSystem/+Package/dict+TestDict>
<ClassPath path=+Project/Tests+SubSystem/Libraries+SubSystem/+Package/src+TestLib>
<ClassPath path=+Project/Tests+SubSystem/Libraries+SubSystem/+Package/dict+TestDict>
# Example applications, libraries and dictionaries
<ClassPath path=+Project/Examples+SubSystem/+Package/src+Example>
<ClassPath path=+Project/Examples+SubSystem/+Package/dict+ExampleDict>
<ClassPath path=+Project/Examples+SubSystem/Libraries+SubSystem/+Package/src+ExampleLib>
<ClassPath path=+Project/Examples+SubSystem/Libraries+SubSystem/+Package/dict+ExampleDict>
# This builds a utility
<ClassPath path=+Project/Utilities+SubSystem/+Utility>
# This releases a set of scripts
<ClassPath path=+Project/Scripts+SubSystem/+Scripts>
# What to do
DEFAULT: all
all:
@echo "Cannot build from here - please goto the relevant src directory";
# Example Library Context Defaults
# Extracting the library name
libraryName=$(shell echo `$(PYTHONEXE) $(LOCALTOP)/$(projconfigdir)/parent_dir_name.py $(ClassDir)` )
libraryDictName =$(shell echo `$(PYTHONEXE) $(LOCALTOP)/$(projconfigdir)/dict_name.py $(libraryName)` )
# Find the correct path for the libraries
LIBDIR += $(LOCALTOP)/$(SCRAM_ARCH)/lib $(LOCALTOP)/$(SCRAM_ARCH)/examples/lib
ifneq ($(RELEASETOP),$(LOCALTOP))
LIBDIR +=$(RELEASETOP)/$(SCRAM_ARCH)/lib $(RELEASETOP)/$(SCRAM_ARCH)/examples/lib
endif
THELIBDIR=$(LOCALTOP)/$(SCRAM_ARCH)/examples/lib
THELIBRARY=$(THELIBDIR)/$(LIBPRE)$(libraryDictName).$(LIBEXT)
LDLIBSCORRECTED = $(LDLIBS)
FILESCPP := $(patsubst $(LOCALTOP)/%.$(HEADEXT), $(LOCALTOP)/tmp/$(SCRAM_ARCH)/%_dict.$(CPPEXT), $(DICT_FILES) )
FILESCPP += $(patsubst $(LOCALTOP)/%.$(HEADEXT), $(LOCALTOP)/tmp/$(SCRAM_ARCH)/%_dictstubs.$(CPPEXT), $(DICT_FILES) )
FILESOBJ := $(patsubst %.$(CPPEXT), %.$(OBJEXT), $(FILESCPP) )
FILESDEP := $(patsubst $(LOCALTOP)/%.$(HEADEXT), $(LOCALTOP)/tmp/$(SCRAM_ARCH)/%_dict.$(DEPEXT), $(DICT_FILES) )
FILESDEP += $(patsubst $(LOCALTOP)/%.$(HEADEXT), $(LOCALTOP)/tmp/$(SCRAM_ARCH)/%_dictstubs.$(DEPEXT), $(DICT_FILES) )
ifneq ($(FILESDEP),)
-include $(FILESDEP)
endif
$(LOCALTOP)/tmp/$(SCRAM_ARCH)/%_dict.$(DEPEXT): $(LOCALTOP)/%.$(HEADEXT)
@echo "Building the dependencies for $<"
@$(MKDIR) $(dir $@)
@$(PYTHONEXE) $(LOCALTOP)/$(projconfigdir)/find_dependencies.py $< $@ $(OBJEXT) $(INCLUDE)
$(LOCALTOP)/tmp/$(SCRAM_ARCH)/%_dictstubs.$(DEPEXT): $(LOCALTOP)/%.$(HEADEXT)
@echo "Building the dependencies for $<"
@$(MKDIR) $(dir $@)
@$(PYTHONEXE) $(LOCALTOP)/$(projconfigdir)/find_dependencies.py $< $@ $(OBJEXT) $(INCLUDE)
# Running the dictionary
.PRECIOUS : $(LOCALTOP)/tmp/$(SCRAM_ARCH)/%_dict.$(CPPEXT)
.PRECIOUS : $(LOCALTOP)/tmp/$(SCRAM_ARCH)/%_dictstubs.$(CPPEXT)
$(LOCALTOP)/tmp/$(SCRAM_ARCH)/%_dict.$(CPPEXT) : $(LOCALTOP)/%.$(HEADEXT) $(SELECTION_FILE) $(LOCALTOP)/tmp/$(SCRAM_ARCH)/%_dict.$(DEPEXT)
@$(MKDIR) $(dir $@)
$(RUNLCGDICT)
$(patsubst $(LOCALTOP)/%.$(HEADEXT), $(LOCALTOP)/tmp/$(SCRAM_ARCH)/%_dictstubs.$(CPPEXT), $(DICT_FILES) ): $(patsubst $(LOCALTOP)/%.$(HEADEXT), $(LOCALTOP)/tmp/$(SCRAM_ARCH)/%_dict.$(CPPEXT), $(DICT_FILES) )
$(LOCALTOP)/tmp/$(SCRAM_ARCH)/%_dictstubs.$(CPPEXT) : $(LOCALTOP)/tmp/$(SCRAM_ARCH)/%_dictstubs.$(DEPEXT)
# Main rule
ExampleDict: $(THELIBRARY)
@echo "Done."
# The rule for building the library
ifeq ($(FILESOBJ),)
$(THELIBRARY):
else
$(THELIBRARY): $(FILESOBJ)
@$(MKDIR) $(THELIBDIR)
$(BUILDLIB)
endif
# The rule for building the objects from the sources
%.$(OBJEXT): %.$(CPPEXT)
@$(MKDIR) $(dir $@)
$(COMPILE)
# Example Library Context Defaults
# Extracting the library name
libraryName=$(shell echo `$(PYTHONEXE) $(LOCALTOP)/$(projconfigdir)/parent_dir_name.py $(ClassDir)` )
lib := $(patsubst $(libraryName),,$(lib))
# Find the correct path for the libraries
LIBDIR += $(LOCALTOP)/$(SCRAM_ARCH)/lib $(LOCALTOP)/$(SCRAM_ARCH)/examples/lib
ifneq ($(RELEASETOP),$(LOCALTOP))
LIBDIR +=$(RELEASETOP)/$(SCRAM_ARCH)/lib $(RELEASETOP)/$(SCRAM_ARCH)/examples/lib
endif
THELIBDIR=$(LOCALTOP)/$(SCRAM_ARCH)/examples/lib
THELIBRARY=$(THELIBDIR)/$(LIBPRE)$(libraryName).$(LIBEXT)
ifeq ($(PLUGIN_MODULE),$(libraryName))
PLUGIN_MODULE_RULE := plugin_module_rule
$(PLUGIN_MODULE_RULE): $(THELIBRARY)
@$(MKDIR) $(THELIBDIR)/modules
@echo 'module $(LIBPRE)$(libraryName).$(LIBEXT)' > $(THELIBDIR)/modules/$(libraryName).reg
else
PLUGIN_MODULE_RULE :=
endif
# Main rule
ExampleLib: preExampleLib $(THELIBRARY) postExampleLib $(PLUGIN_MODULE_RULE)
@echo "Done."
# Reset the source files to be used
FILESCPP :=
# Check for preExampleLib step
ifeq ($(findstring preExampleLib.mk, $(notdir $(wildcard $(LOCALTOP)/src/Examples/Libraries/$(libraryName)/build/*.mk))),)
preExampleLib:
@echo "No preExampleLib step for $(libraryName)"
else
include $(LOCALTOP)/src/Examples/Libraries/$(libraryName)/build/preExampleLib.mk
endif
# The source and the object files
FILESCPP += $(wildcard $(LOCALTOP)/$(ClassDir)/*.$(CPPEXT) )
FILESOBJ := $(patsubst $(LOCALTOP)%.$(CPPEXT), $(LOCALTOP)/tmp/$(SCRAM_ARCH)%.$(OBJEXT), $(FILESCPP) )
FILESDEP := $(patsubst %.$(OBJEXT), %.$(DEPEXT), $(FILESOBJ) )
ifneq ($(FILESDEP),)
-include $(FILESDEP)
endif
# The rule for building the dependencies
$(LOCALTOP)/tmp/$(SCRAM_ARCH)%.$(DEPEXT): $(LOCALTOP)%.$(CPPEXT)
@echo "Building the dependencies for $<"
@$(MKDIR) $(dir $@)
@$(PYTHONEXE) $(LOCALTOP)/$(projconfigdir)/find_dependencies.py $< $@ $(OBJEXT) $(INCLUDE)
# The rule for building the library
ifeq ($(FILESOBJ),)
$(THELIBRARY):
else
$(THELIBRARY): $(FILESOBJ)
@$(MKDIR) $(THELIBDIR)
$(BUILDLIB)
@echo "Built example library $(THELIBRARY)"
endif
# The rule for building the objects from the sources
$(LOCALTOP)/tmp/$(SCRAM_ARCH)%.$(OBJEXT): $(LOCALTOP)%.$(CPPEXT)
@$(MKDIR) $(dir $@)
$(COMPILE)
# Finally check for postExampleLib check
ifeq ($(findstring postExampleLib.mk, $(notdir $(wildcard $(LOCALTOP)/src/Examples/Libraries/$(libraryName)/build/*.mk))),)
postExampleLib:
@echo "No postExampleLib step for $(libraryName)"
else
include $(LOCALTOP)/src/Examples/Libraries/$(libraryName)/build/postExampleLib.mk
endif
# Example executable Context Defaults
# Extracting the application name
applicationName=$(shell echo `$(PYTHONEXE) $(LOCALTOP)/$(projconfigdir)/parent_dir_name.py $(ClassDir)` )
# The executable
THEEXEDIR=$(LOCALTOP)/$(SCRAM_ARCH)/examples/bin
THEEXECUTABLE=$(THEEXEDIR)/$(applicationName)$(EXESUF)
# Find the correct path for the libraries
LIBDIR += $(LOCALTOP)/$(SCRAM_ARCH)/lib $(LOCALTOP)/$(SCRAM_ARCH)/examples/lib
ifneq ($(RELEASETOP),$(LOCALTOP))
LIBDIR +=$(RELEASETOP)/$(SCRAM_ARCH)/lib $(RELEASETOP)/$(SCRAM_ARCH)/examples/lib
endif
# Main rule
Example: preExample $(THEEXECUTABLE) postExample
@echo "Done"
# Reset the source files to be used
FILESCPP :=
# Check for preExample step
ifeq ($(findstring preExample.mk, $(notdir $(wildcard $(LOCALTOP)/src/Examples/$(applicationName)/build/*.mk))),)
preExample:
@echo "No preExample step for $(applicationName)"
else
include $(LOCALTOP)/src/Examples/$(applicationName)/build/preExample.mk
endif
# The source and the object files
FILESCPP += $(wildcard $(LOCALTOP)/$(ClassDir)/*.$(CPPEXT) )
FILESOBJ := $(patsubst $(LOCALTOP)%.$(CPPEXT), $(LOCALTOP)/tmp/$(SCRAM_ARCH)%.$(OBJEXT), $(FILESCPP) )