| ## Top-level Makefile with rules for main components |
| |
| # @@@ 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 @@@ |
| # |
| ## This version number is used by automated build procedures. |
| ## Please don't change the version number unless you know what you are doing. |
| ## Makefile Version: 8 -- SeaMonster |
| include macros.gmk |
| |
| # Make Targets |
| .PHONY: all dbsecurity foundation $(MPI_TARGET) ndcs ci jdbc_jar jdbc_type2_jar sqroot $(SEAMONSTER_TARGET) verhdr dcs rest odb |
| .PHONY: package package-all pkg-product pkg-sql-regress pkg-phx-tests pkg-dcs-tests check-copyrights pkg-installer |
| |
| ################ |
| ### Main targets |
| # Server-side only |
| |
| # Default target (all components) |
| all: $(MPI_TARGET) dbsecurity foundation jdbc_jar $(SEAMONSTER_TARGET) ndcs ci jdbc_type2_jar dcs rest odb lib_mgmt |
| |
| package: pkg-product pkg-client pkg-installer |
| |
| ############# |
| # Components |
| |
| mpi: sqroot verhdr |
| echo "Building MPI" |
| cd mpi && $(MAKE) sq-local 2>&1 | sed -e "s/$$/ ##(MPI)/";exit $${PIPESTATUS[0]} |
| |
| mpistub: sqroot verhdr |
| echo "Building MPI stub" |
| cd mpistub && $(MAKE) sq-local 2>&1 | sed -e "s/$$/ ##(MPISTUB)/";exit $${PIPESTATUS[0]} |
| |
| seamonster: mpi |
| echo "Building SM" |
| cd seamonster/src; $(MAKE) all 2>&1 | sed -e "s/$$/ ##(SEAMONSTER)/" ; exit $${PIPESTATUS[0]} |
| |
| smstub: mpistub |
| echo "Building SM stub" |
| cd smstub/src; $(MAKE) all 2>&1 | sed -e "s/$$/ ##(SMSTUB)/" ; exit $${PIPESTATUS[0]} |
| |
| verhdr: |
| cd sqf && $(MAKE) genverhdr |
| |
| dbsecurity: $(MPI_TARGET) |
| cd dbsecurity && $(MAKE) all 2>&1 | sed -e "s/$$/ ##(Security)/";exit $${PIPESTATUS[0]} |
| |
| foundation: sqroot dbsecurity $(MPI_TARGET) $(SEAMONSTER_TARGET) |
| cd sqf && $(MAKE) all |
| |
| jdbc_jar: verhdr |
| cd conn/jdbcT4 && $(MAKE) 2>&1 && $(MAVEN) install | sed -e "s/$$/ ##(JDBCT4)/";exit $${PIPESTATUS[0]} |
| |
| dcs: jdbc_jar jdbc_type2_jar |
| cd ../dcs && $(MAKE) 2>&1 | sed -e "s/$$/ ##(DCS)/" ; exit $${PIPESTATUS[0]} |
| |
| ndcs: jdbc_jar foundation |
| cd conn/odbc/src/odbc && $(MAKE) ndcs 2>&1 | sed -e "s/$$/ ##(NDCS)/";exit $${PIPESTATUS[0]} |
| cd conn/odbc/src/odbc && $(MAKE) bldlnx_drvr 2>&1 | sed -e "s/$$/ ##(NDCS)/";exit $${PIPESTATUS[0]} |
| |
| ci: trafci |
| trafci: jdbc_jar |
| cd conn/trafci && $(MAKE) 2>&1 | sed -e "s/$$/ ##(TRAFCI)/" ; exit $${PIPESTATUS[0]} |
| |
| jdbc_type2_jar: verhdr foundation |
| cd conn/jdbc_type2 && $(MAKE) 2>&1 | sed -e "s/$$/ ##(JDBC_TYPE2)/" ; exit $${PIPESTATUS[0]} |
| |
| rest: verhdr jdbc_jar |
| cd rest && $(MAKE) 2>&1 | sed -e "s/$$/ ##(REST)/" ; exit $${PIPESTATUS[0]} |
| |
| odb: ndcs |
| cd conn/odb && $(MAKE) 2>&1 | sed -e "s/$$/ ##(ODB)/" ; exit $${PIPESTATUS[0]} |
| |
| cleantests: |
| cd ../dcs/src/test/pytests && $(RM) -r odbc* tox.ini config.ini .tox .testrep* env.sh test_p2.pyc |
| cd ../dcs/src/test/jdbc_test && $(RM) -r jdbcprop pom.xml target |
| cd ../tests/phx && $(RM) -r jdbcprop *.log pom.xml target |
| |
| clean: sqroot |
| cd $(MPI_TARGET) && $(MAKE) clean-local |
| cd $(SEAMONSTER_TARGET)/src && $(MAKE) clean |
| cd dbsecurity && $(MAKE) clean |
| cd sqf && $(MAKE) clean |
| cd conn/odbc/src/odbc && $(MAKE) clean |
| cd conn/trafci && $(MAKE) clean |
| cd conn/jdbcT4 && $(MAKE) clean |
| cd conn && $(MAKE) clean |
| cd conn/jdbc_type2 && $(MAKE) clean |
| cd rest && $(MAKE) clean |
| cd conn/odb && $(MAKE) clean |
| cd ../dcs && $(MAKE) clean |
| cd sql/lib_mgmt && $(MAKE) clean |
| cd ../install && $(MAKE) clean |
| $(RM) -r ../${DISTRIBUTION_DIR} |
| |
| cleanall: sqroot eclipseclean cleantests |
| cd $(MPI_TARGET) && $(MAKE) clean-local |
| cd dbsecurity && $(MAKE) cleanall |
| cd sqf && $(MAKE) cleanall |
| cd conn/odbc/src/odbc && $(MAKE) cleanall |
| cd conn/trafci && $(MAKE) clean |
| cd conn/jdbcT4 && $(MAKE) clean |
| cd conn && $(MAKE) clean |
| cd conn/jdbc_type2 && $(MAKE) clean |
| cd rest && $(MAKE) clean |
| cd conn/odb && $(MAKE) clean |
| cd ../dcs && $(MAKE) clean |
| cd sql/lib_mgmt && $(MAKE) cleanall |
| cd ../install && $(MAKE) clean |
| $(RM) -r ../${DISTRIBUTION_DIR} |
| |
| package-all: rpmbuild package pkg-sql-regress pkg-phx-tests pkg-dcs-tests |
| |
| pkg-product: all dcs rest |
| cd sqf && $(MAKE) package 2>&1 | sed -e "s/$$/ ##(Package)/";exit $${PIPESTATUS[0]} |
| |
| pkg-client: ci ndcs odb |
| cd conn && make all 2>&1 | sed -e "s/$$/ ##(Package clients)/" ; exit $${PIPESTATUS[0]} |
| |
| # Package SQL regression tests (all target produces some regress/tool files so do that first) |
| pkg-sql-regress: all |
| cd sqf && $(MAKE) package-regress 2>&1 | sed -e "s/$$/ ##(Package sql regress)/";exit $${PIPESTATUS[0]} |
| |
| # Package Phoenix test |
| pkg-phx-tests: all |
| cd sqf && $(MAKE) package-phx 2>&1 | sed -e "s/$$/ ##(Package phoenix)/";exit $${PIPESTATUS[0]} |
| |
| # Package dcs tests |
| pkg-dcs-tests: all |
| cd sqf && $(MAKE) package-dcs 2>&1 | sed -e "s/$$/ ##(Package dcs tests)/";exit $${PIPESTATUS[0]} |
| |
| # Package installer |
| pkg-installer: |
| cd ../install && $(MAKE) 2>&1 | sed -e "s/$$/ ##(Package installer)/";exit $${PIPESTATUS[0]} |
| |
| version: |
| @cd sqf; unset SQ_VERBOSE; source sqenv.sh ; echo "$${TRAFODION_VER}" |
| |
| # Check that Environment variables are set correctly and |
| # create links and files needed as prerequisite for the build |
| sqroot: |
| ./bldenvchk.sh; |
| cd sqf && $(MAKE) setupdir 2>&1 | sed -e "s/$$/ ##(setupdir)/";exit $${PIPESTATUS[0]} |
| |
| # Check for absolute filenames used as dynamic linked libraries |
| find-absolute-dlls: |
| sqf/build-scripts/find-abs-dlls |
| |
| check-copyrights: |
| python ./updateCopyrightCheck.py |
| |
| ############## |
| # RPM defines |
| PKG_PROD=apache-trafodion |
| |
| OS_TYPE = RH |
| OS_MAJOR ?= $(shell lsb_release -rs | cut -f1 -d.) |
| P_TYPE = $(shell uname -p) |
| |
| ifeq ($(SQ_BUILD_TYPE),release) |
| RELEASE ?= 1 |
| SERVERTAR="$(PKG_PROD)_server-$(TRAFODION_VER)-${OS_TYPE}${OS_MAJOR}-${P_TYPE}.tar.gz" |
| else |
| RELEASE ?= devel |
| SERVERTAR="$(PKG_PROD)_server-$(TRAFODION_VER)-${OS_TYPE}${OS_MAJOR}-${P_TYPE}-debug.tar.gz" |
| endif |
| |
| ARCH=$(P_TYPE) |
| |
| SPECFILE = trafodion.spec |
| |
| RPMROOT=$(shell cd ..; /bin/pwd)/RPMROOT |
| RPMDIR=$(RPMROOT)/RPMS |
| SRPMDIR=$(RPMROOT)/SRPMS |
| SOURCEDIR=$(RPMROOT)/SOURCES |
| BUILDDIR=$(RPMROOT)/BUILD |
| BUILDROOTDIR=$(RPMROOT)/BUILDROOT |
| |
| rpmpackage: pkg-product |
| /bin/rm -rf $(RPMROOT) |
| mkdir -p $(RPMDIR) |
| mkdir -p $(SOURCEDIR) |
| mkdir -p $(BUILDDIR) |
| mkdir -p $(BUILDROOTDIR) |
| mkdir -p $(SRPMDIR) |
| ln -L ../distribution/$(SERVERTAR) $(SOURCEDIR)/$(PKG_PROD)_server-$(TRAFODION_VER).tar.gz |
| |
| rpmbuild: rpmpackage |
| rpmbuild -vv -bb \ |
| --define "name $(PKG_PROD)_server" \ |
| --define "version $(TRAFODION_VER)" \ |
| --define "release $(RELEASE)" \ |
| --define "_builddir $(BUILDDIR)" \ |
| --define "_buildrootdir $(BUILDROOTDIR)" \ |
| --define "_sourcedir $(SOURCEDIR)" \ |
| --define "_rpmdir $(RPMDIR)" \ |
| --define "_arch $(ARCH)" \ |
| --define "_topdir $(RPMROOT)" \ |
| $(SPECFILE) |
| mkdir -p ../distribution/${OS_TYPE}${OS_MAJOR} |
| mv $(RPMROOT)/RPMS/$(ARCH)/$(PKG_PROD)*.rpm ../distribution/${OS_TYPE}${OS_MAJOR}/ |
| |
| |
| eclipse: rest/.project dcs/.project sql/.project sqf/src/seatrans/hbase-trx/.project .project |
| @echo |
| @echo |
| @echo " Now you can import 5 projects in Eclipse:" |
| @echo " $^" |
| @echo |
| @echo " File->Import->General->Existing Projects into Workspace" |
| @echo " Select root directory $(@D)" |
| @echo " Search for nested projects" |
| @echo " Select all or only those you want" |
| @echo |
| |
| rest/.project: |
| cd rest && $(MAVEN) eclipse:eclipse |
| |
| dcs/.project: |
| cd ../dcs && $(MAVEN) eclipse:eclipse |
| |
| sql/.project: |
| cd sql && $(MAVEN) eclipse:eclipse |
| |
| sqf/src/seatrans/hbase-trx/.project: |
| cd sqf/src/seatrans/hbase-trx && $(MAVEN) eclipse:eclipse |
| |
| .project: |
| cp sqf/export/limited-support-tools/eclipse.project .project |
| cp sqf/export/limited-support-tools/eclipse.cproject .cproject |
| |
| eclipseclean: |
| $(RM) rest/.classpath rest/.project |
| $(RM) ../dcs/.classpath ../dcs/.project |
| $(RM) sql/.classpath sql/.project |
| $(RM) sqf/src/seatrans/hbase-trx/.classpath sqf/src/seatrans/hbase-trx/.project |
| $(RM) .cproject .project |
| |
| trafinstall: |
| cd $(TRAF_HOME)/sql/scripts && install_traf_components |
| |
| lib_mgmt: foundation |
| cd sql/lib_mgmt && $(MAKE) all |