| # @@@ START COPYRIGHT @@@ |
| # |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| # |
| # @@@ END COPYRIGHT @@@ |
| |
| include ../macros.gmk |
| include ./macros.gmk |
| |
| # Default build flavor is debug |
| SQ_BUILD_TYPE ?= debug |
| |
| ifeq ($(SQ_BUILD_TYPE),release) |
| MTYPE_BTYPE=$(SQ_MTYPE)bit/release |
| else |
| MTYPE_BTYPE=$(SQ_MTYPE)bit/debug |
| endif |
| ifeq ($(SQ_MTYPE),64) |
| SQENV_MTYPE=sqenv.sh |
| else |
| SQENV_MTYPE=sq32env.sh |
| endif |
| STUBLIBDIR=stublibs/lib/linux/$(MTYPE_BTYPE) |
| SQL_W=$(TRAF_HOME)/../sql |
| |
| DP2=se |
| |
| MISC = win misc_sec |
| SQ_COMPONENTS := make_sqevlog seabed stfs $(MISC) tm $(SEAMONSTER_TARGET) make_sql make_monitor tools hbase_utilities |
| |
| .PHONY: $(SQ_COMPONENTS) |
| |
| buildinfo: |
| @echo "Building $(TRAFODION_VER_PROD) Version $(TRAFODION_VER) $(SQ_BUILD_TYPE)" |
| @echo "" |
| |
| all: genverhdr $(SQ_COMPONENTS) |
| |
| win: make_sqevlog seabed |
| cd src/win; $(MAKE) 2>&1 | sed -e "s/$$/ ##(SQF)/" ; exit $${PIPESTATUS[0]} |
| |
| seabed: make_sqevlog |
| cd src/seabed; $(MAKE) 2>&1 | sed -e "s/$$/ ##(SQF)/" ; exit $${PIPESTATUS[0]} |
| |
| |
| tm: seabed make_sqevlog |
| cd src/tm; $(MAKE) 2>&1 | sed -e "s/$$/ ##(SQF)/" ; exit $${PIPESTATUS[0]} |
| |
| seamonster: seabed |
| cd ../seamonster/src; $(MAKE) 2>&1 | sed -e "s/$$/ ##(SEAMONSTER)/" ; exit $${PIPESTATUS[0]} |
| |
| smstub: |
| cd ../smstub/src; $(MAKE) 2>&1 | sed -e "s/$$/ ##(SMSTUB)/" ; exit $${PIPESTATUS[0]} |
| |
| |
| make_sql: $(SEAMONSTER_TARGET) win hbase_utilities |
| cd sql; $(MAKE) WROOT=$(SQL_W) 2>&1 | sed -e "s/$$/ ##(SQL)/" ; exit $${PIPESTATUS[0]} |
| cd $(TRAF_HOME)/sql/scripts && ./makemsg.ksh 2>&1 | sed -e "s/$$/ ##(SQL)/" ; exit $${PIPESTATUS[0]} |
| |
| make_monitor: stfs make_sqevlog seabed |
| cd monitor/linux; $(MAKE) 2>&1 | sed -e "s/$$/ ##(SQF)/" ; exit $${PIPESTATUS[0]} |
| |
| stfs: make_sqevlog |
| -cd src/stfs; $(MAKE) -f Makefile.stub 2>&1 | sed -e "s/$$/ ##(SQF)/" ; exit $${PIPESTATUS[0]} |
| |
| monitor_ib: |
| -cd monitor/linux && mv $(OUTDIR) $(OUTDIR).tcp && mkdir -p $(OUTDIR) 2>&1 | sed -e "s/$$/ ##(SQF)/" ; exit $${PIPESTATUS[0]} |
| cd monitor/linux; $(MAKE) 2>&1 | sed -e "s/$$/ ##(SQF)/" ; exit $${PIPESTATUS[0]} |
| |
| make_sqevlog: |
| cd sqevlog; $(MAKE) 2>&1 | sed -e "s/$$/ ##(SQF)/" ; exit $${PIPESTATUS[0]} |
| |
| hbase_utilities: tm |
| cd hbase_utilities; $(MAKE) 2>&1 | sed -e "s/$$/ ##(HBASE_UTIL)/" ; exit $${PIPESTATUS[0]} |
| |
| .PHONY: conn |
| conn: |
| cd ../conn/odbc/src/odbc; $(MAKE) clean; $(MAKE) all 2>&1 | sed -e "s/$$/ ##(NDCS)/" ; exit $${PIPESTATUS[0]} |
| |
| .PHONY: ndcs |
| ndcs: |
| cd ../conn/odbc/src/odbc; $(MAKE) cleanndcs; $(MAKE) ndcs 2>&1 | sed -e "s/$$/ ##(NDCS)/" ; exit $${PIPESTATUS[0]} |
| |
| .PHONY: wms |
| wms: |
| cd ../conn/odbc/src/odbc; $(MAKE) cleanwms; $(MAKE) wms 2>&1 | sed -e "s/$$/ ##(WMS)/" ; exit $${PIPESTATUS[0]} |
| |
| clean: setupdir_clean |
| -cd monitor/linux; $(MAKE) clean |
| -cd src/seabed; $(MAKE) clean |
| -cd src/stfs; $(MAKE) -f Makefile.stub clean |
| -cd src/win; $(MAKE) clean |
| -cd src/tm; $(MAKE) clean |
| -cd sql; $(MAKE) WROOT=$(SQL_W) clean |
| -cd sqevlog; $(MAKE) clean |
| -cd hbase_utilities; $(MAKE) clean |
| # from genverhdr.ksh |
| rm -f export/include/SCMBuildStr.h export/include/SCMBuildStr.java export/include/buildId |
| # from makemsg.ksh |
| rm -f sql/scripts/SqlciErrors.[gm] export/bin*/mxcierrors.cat |
| |
| # sql uses clean |
| cleanall: setupdir_clean |
| -cd monitor/linux; $(MAKE) cleanall |
| -cd src/seabed; $(MAKE) cleanall |
| -cd src/stfs; $(MAKE) -f Makefile.stub cleanall |
| -cd src/win; $(MAKE) cleanall |
| -cd src/tm; $(MAKE) cleanall |
| -cd sql; $(MAKE) WROOT=$(SQL_W) clean |
| -cd sqevlog; $(MAKE) cleanall |
| -cd hbase_utilities; $(MAKE) clean |
| # from genverhdr.ksh |
| rm -f export/include/SCMBuildStr.h export/include/SCMBuildStr.java export/include/buildId |
| # from makemsg.ksh |
| rm -f sql/scripts/SqlciErrors.[gm] export/bin*/mxcierrors.cat |
| |
| cleaner: |
| -cd monitor/linux; $(MAKE) cleaner |
| -cd src/seabed; $(MAKE) cleaner |
| -cd src/stfs; $(MAKE) -f Makefile.stub cleaner |
| -cd src/win; $(MAKE) cleaner |
| -cd src/tm; $(MAKE) cleaner |
| -cd sql; $(MAKE) WROOT=$(SQL_W) cleaner |
| -cd sqevlog; $(MAKE) cleaner |
| |
| cleanobjs: |
| @TMP=/tmp/mc$$$$; \ |
| trap "rm -f $$TMP; exit 0" 1 2 13 15; \ |
| echo "echo /bin/rm -f" '"$$*"' > $$TMP; \ |
| echo "/bin/rm -f" '"$$*"' >> $$TMP; \ |
| chmod +x $$TMP; \ |
| find . \( -name '*.o' -o -name '*.so' \) -exec $$TMP '{}' \; |
| $(RM) $$TMP |
| |
| |
| EXPORTBIN_DIR=export/bin$(SQ_MBTYPE) |
| EXPORTLIB_DIR=export/lib$(SQ_MBTYPE) |
| EXPORTLIBX_DIR=export/lib |
| EXPORTINCSQL_DIR=export/include/sql |
| EXPORTINCEVL_DIR=export/include |
| |
| # SQL libs |
| EXPORTSQLLIBS= libarkcmplib.so libarkcmp.so libarkesp.so libarkfsindp2.so libcatman.so \ |
| libcli.so libcomexe.so libcommon.so libeh.so libexecutor.so libexeindp2.so \ |
| libfepipe.so libgenerator.so liblangman.so liblmcomp.so liboptimizer.so \ |
| libparser.so libsmdio.so libsort.so libsqlcat.so libsqlci.so libsqlcomp.so \ |
| libsqlc.so libsqlmsg.so libtdm_arkfsddl.so libtdm_arkfsdml.so \ |
| libtdm_arkfsinopen.so libtdm_sqlcli_globals.so libtdm_sqlcli.so \ |
| libtdm_sqlerrormsg.so libtdm_sqlexport.so libtdm_sqlexp.so libtdm_sqlmxevents.so \ |
| libtdm_sqlshare.so libustat.so libSqlCompilerDebugger.so libudr_predef.so |
| # SQL Utility Libraries |
| EXPORTUTILLIBS= libds.a libdmol.a libddol.a libuol.a libqol.a libdup.a libPaUtiParser.a \ |
| libuofs.a libpurgedata.a libtse_interface.so |
| # SQL system executables |
| EXPORTSQLEXE= tdm_sqlc tdm_arkcmp tdm_arkesp sqlci tdm_udrserv mxlobsrvr |
| # SQL Utilities executables |
| EXPORTUTILS= mxtool sup mxexportddl mximportddl |
| |
| setupdir: |
| mkdir -p $(EXPORTBIN_DIR) |
| mkdir -p $(EXPORTLIB_DIR) |
| mkdir -p $(EXPORTINCSQL_DIR) |
| mkdir -p $(EXPORTINCEVL_DIR) |
| @# side-effect directory creation in these targets |
| -cd monitor/linux; $(MAKE) setup |
| -cd src/win; $(MAKE) setup |
| -cd src/seabed; $(MAKE) setup |
| -cd src/tm; $(MAKE) setup |
| -cd sqevlog; $(MAKE) setup |
| @# builds/copies 3rd party dependencies as necessary |
| cd sql; $(MAKE) WROOT=$(SQL_W) setup |
| @# commands to export |
| -ln -sf ../../mondump $(EXPORTBIN_DIR) |
| -ln -sf ../../sqid $(EXPORTBIN_DIR) |
| -ln -sf ../../sqinfo $(EXPORTBIN_DIR) |
| -ln -sf ../../sqvers $(EXPORTBIN_DIR) |
| @# SQL Messages .txt file |
| -ln -sf $(SQL_W)/bin/SqlciErrors.txt $(EXPORTINCSQL_DIR) |
| @# copy some header files |
| -ln -sf $(SQL_W)/cli/sqlcli.h $(EXPORTINCSQL_DIR) |
| -ln -sf $(SQL_W)/sqludr/sqludr.h $(EXPORTINCSQL_DIR) |
| @# |
| mkdir -p export/include/nsk |
| -ln -sf $(TRAF_HOME)/inc/cextdecs/cextdecs.h export/include/nsk |
| @# USTAT |
| -mkdir -p export/lib/mx_ustat |
| -ln -sf $(SQL_W)/ustat/USAS.sh export/lib/mx_ustat |
| -ln -sf $(SQL_W)/ustat/FillAutoTbl.sh export/lib/mx_ustat |
| -ln -sf $(SQL_W)/ustat/RunLogUstats.sh export/lib/mx_ustat |
| -ln -sf $(SQL_W)/ustat/StopAutoStats.sh export/lib/mx_ustat |
| -ln -sf $(SQL_W)/ustat/stats_profile export/lib/mx_ustat |
| |
| # "setupdir" target clean up |
| setupdir_clean: |
| rm -rf $(EXPORTBIN_DIR)/sqinfo |
| rm -rf $(EXPORTLIB_DIR)/librwtlh.so |
| rm -rf $(EXPORTLIB_DIR)/libdummy.so $(EXPORTLIB_DIR)/libtdm_measenty.so \ |
| $(EXPORTLIB_DIR)/libtdm_security.so $(EXPORTLIB_DIR)/libtdm_tfds.so \ |
| $(EXPORTLIB_DIR)/libtdm_tmflib.so $(EXPORTLIB_DIR)/libtdm_tmfuser.so \ |
| $(EXPORTLIB_DIR)/libhdfs*.so $(EXPORTLIB_DIR)/libhadoop*.so \ |
| $(EXPORTINCEVL_DIR)/hdfs.h |
| @for f in $(EXPORTSQLLIBS); do \ |
| echo rm -f $(EXPORTLIB_DIR)/$$f ; \ |
| rm -f $(EXPORTLIB_DIR)/$$f ; done |
| @for f in $(EXPORTUTILLIBS); do \ |
| echo rm -f $(EXPORTLIB_DIR)/$$f ; \ |
| rm -f $(EXPORTLIB_DIR)/$$f ; done |
| @for f in $(EXPORTSQLEXE); do \ |
| echo rm -f $(EXPORTBIN_DIR)/$$f ; \ |
| rm -f $(EXPORTBIN_DIR)/$$f ; done |
| @for f in $(EXPORTUTILS); do \ |
| echo rm -f $(EXPORTBIN_DIR)/$$f ; \ |
| rm -f $(EXPORTBIN_DIR)/$$f ; done |
| rm -f $(EXPORTLIBX_DIR)/mxlangman.jar |
| -rm -rf $(EXPORTINCSQL_DIR) export/include/nsk export/lib/mx_ustat |
| |
| ###### |
| # |
| # Automated Build and Release Targets |
| # |
| ###### |
| |
| # NOTE: This is another target that could be a recursive |
| # call into each subdir. That would allow each |
| # subdir to have it's own header / version info |
| |
| .PHONY: genverhdr |
| |
| PV_BRANCH ?= $(shell build-scripts/build.branch) |
| PV_BUILDID ?= $(shell whoami) |
| PV_DATE ?= $(shell date +%d%b%y) |
| PV_FUNBRANCH ?= $(shell build-scripts/build.branch -f) |
| SQVFILE = sqenvcom.sh |
| PV_MAJOR ?= $(shell grep TRAFODION_VER_MAJOR= $(SQVFILE) | cut -f2 -d=) |
| PV_MINOR ?= $(shell grep TRAFODION_VER_MINOR= $(SQVFILE) | cut -f2 -d=) |
| PV_UPDATE ?= $(shell grep TRAFODION_VER_UPDATE= $(SQVFILE) | cut -f2 -d=) |
| |
| genverhdr: buildinfo |
| cd build-scripts && ./genverhdr.ksh -major "${PV_MAJOR}" \ |
| -minor "${PV_MINOR}" \ |
| -update "${PV_UPDATE}" \ |
| -build "${PV_BUILDID}" \ |
| -flavor "${SQ_BUILD_TYPE}" \ |
| -funbranch "${PV_FUNBRANCH}" \ |
| -branch "${PV_BRANCH}" \ |
| -date "${PV_DATE}" |
| |
| PKG_PROD = apache-trafodion |
| PKG_PHX = phoenix |
| PKG_DCS = dcs |
| OS_TYPE = RH |
| OS_MAJOR ?= $(shell lsb_release -rs | cut -f1 -d.) |
| P_TYPE = $(shell uname -p) |
| |
| ifeq ($(SQ_BUILD_TYPE),release) |
| PKG_TYPE="server-$(TRAFODION_VER)-${OS_TYPE}${OS_MAJOR}-${P_TYPE}" |
| else |
| PKG_TYPE="server-$(TRAFODION_VER)-${OS_TYPE}${OS_MAJOR}-${P_TYPE}-debug" |
| endif |
| |
| PKG_BIN ?= "${PKG_PROD}.bin" |
| PKG_TAR ?= "../../${DISTRIBUTION_DIR}/${PKG_PROD}_$(PKG_TYPE).tar.gz" |
| PKG_TAR_UN = "${PKG_PROD}_${SQ_BUILD_TYPE}.tar" |
| SRC_PKG_BIN ?= "../../${DISTRIBUTION_DIR}/${PKG_PROD}-src.bin" |
| SRC_PKG_TAR ?= "../../${DISTRIBUTION_DIR}/${PKG_PROD}-src.tgz" |
| PKG_PHX_TAR ?= "../../${DISTRIBUTION_DIR}/${PKG_PHX}-tests.tgz" |
| PKG_DCS_TEST_TAR ?= "../../${DISTRIBUTION_DIR}/${PKG_DCS}-tests.tgz" |
| |
| PKG_BIN_OBJS ?= export/bin$(SQ_MBTYPE) export/include export/lib export/lib$(SQ_MBTYPE) export/share gdb sql/scripts sqenvcom.sh opt tools conf hbase_utilities/backup_and_restore |
| |
| PKG_BIN_OBJS += sysinstall |
| PKG_BIN_OBJS += trafci |
| PKG_BIN_OBJS += samples |
| PKG_BIN_OBJS += export/limited-support-tools |
| PKG_BIN_OBJS += LICENSE NOTICE |
| PKG_BIN_OBJS += rest-${TRAFODION_VER} dcs-${TRAFODION_VER} |
| |
| PKG_BIN_DIRS ?= sql export |
| PKG_BIN_DIRS += trafci |
| PKG_BIN_DIRS += samples |
| |
| # Package Regression variables (parser file is for compGeneral/TESTTOK2) |
| PKG_REGRESS_OBJS ?= $(SQL_W)/regress inc/seaquest/sqtypes.h inc/fs/feerrors.h $(SQL_W)/cli/sqlcli.h $(SQL_W)/cli/SQLCLIdev.h $(SQL_W)/parser/sqlparser.y |
| REGRESS_EXCLUDE_FILES = "--exclude=$(SQL_W)/regress/seabase" |
| REGRESS_EXCLUDE_FILES = |
| |
| PKG_REGRESS_TAR ?= "../../${DISTRIBUTION_DIR}/${PKG_PROD}-regress.tgz" |
| |
| |
| # Package SeaMonster kernel module |
| SEAMONSTER_TAR ?= "seamonster_${SQ_BUILD_TYPE}-src.tar.gz" |
| |
| # Targets to tar/gzip the tree |
| package: pkglist-files pkglist-symlinks tmp/sqenv.sh |
| mkdir -p ../../${DISTRIBUTION_DIR} |
| chmod o-rwx $(PKG_BIN_DIRS) |
| chmod -R o-rwx $(PKG_BIN_OBJS) |
| tar --mode o-rwx --no-recursion -chf $(PKG_TAR_UN) -X build-scripts/package.exclude -X build-scripts/package.exclude.$(SQ_MBTYPE) -T pkglist-files |
| tar --mode o-rwx -rf $(PKG_TAR_UN) -X build-scripts/package.exclude -X build-scripts/package.exclude.$(SQ_MBTYPE) -T pkglist-symlinks |
| cd tmp; tar --mode o-rwx -rf ../$(PKG_TAR_UN) sqenv.sh |
| gzip -c $(PKG_TAR_UN) > $(PKG_TAR) |
| rm -f $(PKG_TAR_UN) pkglist-files pkglist-symlinks tmp/sqenv.sh |
| |
| LICENSE: ../../licenses/LICENSE-server |
| cp -f $? $@ |
| |
| ../../licenses/LICENSE-server: |
| cd $(@D) && $(MAKE) $(@F) |
| |
| NOTICE: ../../licenses/NOTICE-server |
| cp -f $? $@ |
| |
| ../../licenses/NOTICE-server: |
| cd $(@D) && $(MAKE) $(@F) |
| |
| rest-${TRAFODION_VER}: |
| ln -s ../rest/target/$@/$@ $@ |
| |
| dcs-${TRAFODION_VER}: |
| ln -s ../../dcs/target/$@/$@ $@ |
| |
| tmp/sqenv.sh: |
| @if [ ! -d tmp ]; then mkdir tmp; fi |
| echo "export SQ_BUILD_TYPE=$(SQ_BUILD_TYPE)" > tmp/sqenv.sh |
| echo "" >> tmp/sqenv.sh |
| echo "# $(SQENV_MTYPE)" >> tmp/sqenv.sh |
| cat $(SQENV_MTYPE) >> tmp/sqenv.sh |
| |
| # regular directories and files, following symlinks, minus simple links |
| pkglist-files: pkglist-symlinks |
| find -L $(PKG_BIN_OBJS) -type d -o -type f | grep -v -xf pkglist-symlinks > $@ |
| |
| # simple symlinks that point to filename (does not start with . or /) |
| pkglist-symlinks: LICENSE NOTICE rest-${TRAFODION_VER} dcs-${TRAFODION_VER} |
| find $(PKG_BIN_OBJS) -lname '[^./]*' > $@ |
| |
| # Targets to tar/gzip the self installer |
| packagebin: |
| cat $(TRAF_HOME)/sql/scripts/sqinstall > $(PKG_BIN) |
| echo "__ARCHIVE_BELOW__" >> $(PKG_BIN) |
| tar chzf - -X build-scripts/package.exclude $(PKG_BIN_OBJS) >> $(PKG_BIN) |
| chmod +x $(PKG_BIN) |
| |
| # Targets to create self-installer with sqinstaller |
| packageinstaller: |
| cat $(TRAF_HOME)/sql/scripts/sqinstaller > $(PKG_BIN) |
| echo "__ARCHIVE_BELOW__" >> $(PKG_BIN) |
| tar chzf - -X build-scripts/package.exclude $(PKG_BIN_OBJS) >> $(PKG_BIN) |
| chmod +x $(PKG_BIN) |
| |
| srcpackage: |
| -rm etc/ms.env |
| tar chzf ${SRC_PKG_TAR} -X build-scripts/package.exclude -X build-scripts/package.exclude.$(SQ_MBTYPE) . |
| |
| # Targets to tar/gzip the regression tree |
| package-regress: |
| tar chzf $(PKG_REGRESS_TAR) -X build-scripts/package.exclude $(REGRESS_EXCLUDE_FILES) $(PKG_REGRESS_OBJS) |
| |
| # Targets to tar/gzip the phoenix tests |
| package-phx: |
| tar chzf $(PKG_PHX_TAR) ../../tests/phx |
| |
| # Targets to tar/gzip the dcs tests |
| package-dcs: |
| tar chzf $(PKG_DCS_TEST_TAR) ../../dcs/src/test |
| |
| # Targets to tar/gzip the self installer with sources |
| srcpackagebin: |
| -rm etc/ms.env |
| cat $(TRAF_HOME)/sql/scripts/sqinstall > $(SRC_PKG_BIN) |
| echo "__ARCHIVE_BELOW__" >> $(SRC_PKG_BIN) |
| tar chzf - -X build-scripts/package.exclude -X build-scripts/package.exclude.$(SQ_MBTYPE) . >> $(SRC_PKG_BIN) |
| chmod +x $(SRC_PKG_BIN) |
| |
| |
| # Convenience target to clean / build / package |
| fullpackage: clean all package srcpackage |
| |
| # Convenience target to clean / build / binary package |
| fullpackagebin: clean all packagebin srcpackagebin |
| |
| # doxygen html xref |
| # |
| doxygen: |
| doxygen sqf_doxygen.cfg |