Files
2022-12-13 12:44:04 +01:00

122 lines
4.7 KiB
Makefile
Executable File

# ******************************************************************************
# * Makefile.hpux-cl: This is the platform specific Makefile for HPUX using
# * the CenterLine C++ compiler.
# *
# * Externals : This Makefile relies on the developer defining the
# * following external definitions...
# *
# * CDEV : The base directory of the CDEV distribution
# ******************************************************************************
TARGET = hpux-cl
SHOBJ = NO
OS_MAJOR := $(shell uname -r | awk -F "." '{print $$2; exit}')
OS_MAJOR_NUM := $(shell awk 'BEGIN {VAL=$(OS_MAJOR); print VAL; exit; }')
OS_MINOR := $(shell uname -r | awk -F "." '{print $$3; exit}')
OS_MINOR_NUM := $(shell awk 'BEGIN {VAL=$(OS_MINOR); print VAL; exit; }')
OS_VERSION_DEF := -D_OS_MAJOR_=$(OS_MAJOR_NUM) -D_OS_MINOR_=$(OS_MINOR_NUM)
include $(CDEV)/extensions/cdevGenericServer/include/makeinclude/Makefile.common
include $(CDEV)/include/makeinclude/Makefile.archive
ifeq ($(OS_MAJOR_NUM), 9)
HP_FLAGS = -D_SELECT_USES_INT_
endif
ifeq ($(OS_MAJOR_NUM), 10)
HP_FLAGS = -Dvolatile=""
NETLIBS = -lxti
endif
# ******************************************************************************
# * Platform specific compile and link options.
# ******************************************************************************
# ******************************************************************************
# * Only specify the DEBUGFLAG if the DEBUG variable has been set.
# ******************************************************************************
ifdef DEBUG
DEBUGFLAG = -g
endif
CXX = /usr/csite4/CenterLine/bin/CC
CC = cc
CXXFLAGS = -z -pta -D__CENTERLINE__ $(CXXEXTRA) $(CXXINCLUDES) $(CDEVINCLUDES) \
$(BASEINCLUDES) $(OS_VERSION_DEF) $(DEBUGFLAG) $(HP_FLAGS) -DSYSV
CFLAGS = -Aa $(CCEXTRA) $(CXXINCLUDES) $(CDEVINCLUDES) \
$(BASEINCLUDES) $(OS_VERSION_DEF) $(DEBUGFLAG) -DSYSV
LDFLAGS = -Wl,+s
AR = ar
ARFLAGS = ruv
RANLIB = true
DLD = $(CXX)
SOFLAGS = -b
PIC =
SHARED_EXT = sl
OSLIBS = -lm
# ******************************************************************************
# * These definitions define the names and locations of libraries that are
# * required by CDEV for a shared and archive applications. The developer
# * is required to add the list of service specific libraries.
# ******************************************************************************
ifeq ($(SHOBJ), NO)
CDEVLIBS = $(CDEVLIB)/libcdev.a $(ARCHIVELIBS)
else
CDEVLIBS = -L$(CDEVLIB) -lcdev
endif
# ******************************************************************************
# * Platform specific compile and link macros.
# ******************************************************************************
COMPILE.cc = $(QUIET)$(CXX_CMD_ECHO)rm -rf $@;\
mkdir -p $(@D);\
$(CXX) -c $(CXXFLAGS) $^ -o $@
COMPILE.cc.so = $(QUIET)$(CXX_CMD_ECHO)rm -rf $@;\
mkdir -p $(@D);\
$(CXX) -c $(CXXFLAGS) $(PIC) $^ -o $@
COMPILE.c = $(QUIET)$(CC_CMD_ECHO)rm -rf $@;\
mkdir -p $(@D);\
$(CC) -c $(CFLAGS) $^ -o $@
COMPILE.c.so = $(QUIET)$(CC_CMD_ECHO)rm -rf $@;\
mkdir -p $(@D);\
$(CC) -c $(CFLAGS) $(PIC) $^ -o $@
LINK.cc = $(QUIET)$(LINK_CMD_ECHO)rm -rf $@;\
mkdir -p $(@D);\
$(PROOF) $(CXX) $(CXXFLAGS)
LINK.a = $(QUIET)$(AR_CMD_ECHO)rm -rf $@;\
mkdir -p $(@D);\
$(AR) $(ARFLAGS)
LINK.so = $(QUIET)$(SO_CMD_ECHO)rm -rf $@;\
mkdir -p $(@D);\
$(DLD) $(SOFLAGS)
# ******************************************************************************
# * This is the macro to build a shared object/library.... it requires the
# * following variables to be defined...
# *
# * SO_SRCS : Names of the component source files
# * SO_LIBS : Names of the dependent libraries
# * LIBS : All libraries necessary to compile the dummy application
# ******************************************************************************
SOBUILD = rm -f $@;\
mkdir -p $(@D);\
echo "=> Building shared object $(@F)";\
echo " => Instanciating templates for $(@F)";\
echo "int main() {return 0;}" >dummy.cc;\
$(CXX) -c $(CXXFLAGS) $(PIC) dummy.cc $(SO_SRCS) $(LDFLAGS) -ptr./pt$(@F) -ptr./ptrepository $(SO_LIBS);\
rm -rf a.out dummy.*;\
if test -f ./pt$(@F)/*.o;\
then\
echo " => Linking $(@F) from objects and template objects";\
$(LINK.so) -o $@ $^ ./pt$(@F)/*.o $(LIBS);\
else\
echo " => Linking $(@F) from objects";\
$(LINK.so) -o $@ $^ $(SO_LIBS);\
fi;\
rm -rf *.o ./pt$(@F)