NS/releases/3.01/source/stlport/src/cray.mak
Karl 04c334c94b Tagging 3.01 release (again)
git-svn-id: https://unknownworlds.svn.cloudforge.com/ns1@15 67975925-1194-0748-b3d5-c16f83f1a3a1
2005-03-12 22:19:53 +00:00

155 lines
4.9 KiB
Makefile

#
# Note : This makefile is for Cray C++ 3.4 and 3.5
#
# The GNU version of make must be used to execute the
# makefile. The UNICOS version of make does not support
# the "%.suffix1: %.suffix2" feature.
#
# GNU version of make is available from the Cray Open
# Source release, or can be downloaded from various of
# open source sites.
#
# compiler
#
CC = cc
CXX = CC
#
# Basename for libraries
#
LIB_BASENAME = libstlport
#
# guts for common stuff
#
#
LINK=ar cr
OBJEXT=o
STEXT=a
RM=rm -rf
PATH_SEP=/
MKDIR=mkdir -p
COMP=CRAY$(ARCH)
all: all_static all_staticx
include common_macros.mak
CXXFLAGS_COMMON = -I${STLPORT_DIR}
CXXFLAGS_RELEASE_static = $(CXXFLAGS_COMMON) -D_STLP_HAS_NO_EXCEPTIONS
CXXFLAGS_RELEASE_staticx = $(CXXFLAGS_COMMON) -hexceptions
CXXFLAGS_DEBUG_static = $(CXXFLAGS_COMMON) -g
CXXFLAGS_STLDEBUG_static = $(CXXFLAGS_DEBUG_static) -D_STLP_DEBUG -D_STLP_HAS_NO_EXCEPTIONS
CXXFLAGS_STLDEBUG_staticx = $(CXXFLAGS_DEBUG_static) -D_STLP_DEBUG -hexceptions
include common_percent_rules.mak
# common_percent_rules.mak does not contain makerules for staticx source
$(RELEASE_OBJDIR_staticx)/%.o: %.cpp
$(CXX) $(CXXFLAGS_RELEASE_staticx) $< -c -o $@
$(RELEASE_OBJDIR_staticx)/%.o: %.c
$(CC) $(CXXFLAGS_RELEASE_staticx) $< -c -o $@
$(RELEASE_OBJDIR_staticx)/%.i : %.cpp
$(CXX) $(CXXFLAGS_RELEASE_staticx) $< -E $@
$(STLDEBUG_OBJDIR_staticx)/%.o : %.cpp
$(CXX) $(CXXFLAGS_STLDEBUG_staticx) $< -c -o $@
$(STLDEBUG_OBJDIR_staticx)/%.o : %.c
$(CC) $(CXXFLAGS_STLDEBUG_staticx) $< -c -o $@
$(STLDEBUG_OBJDIR_staticx)/%.i : %.cpp
$(CXX) $(CXXFLAGS_STLDEBUG_staticx) $< -E $@
#include common_rules.mak
#
# Target directories
#
#
$(OUTDIR) :
$(MKDIR) $(OUTDIR)
$(RELEASE_OBJDIR_static) :
$(MKDIR) $(RELEASE_OBJDIR_static)
$(DEBUG_OBJDIR_static) :
$(MKDIR) $(DEBUG_OBJDIR_static)
$(STLDEBUG_OBJDIR_static) :
$(MKDIR) $(STLDEBUG_OBJDIR_static)
$(RELEASE_OBJDIR_staticx) :
$(MKDIR) $(RELEASE_OBJDIR_staticx)
$(DEBUG_OBJDIR_staticx) :
$(MKDIR) $(DEBUG_OBJDIR_staticx)
$(STLDEBUG_OBJDIR_staticx) :
$(MKDIR) $(STLDEBUG_OBJDIR_staticx)
#create a compiler platform directory
platform: $(PREPARE_STEP)
-@$(MKDIR) $(OUTDIR)
-@$(MKDIR) $(OBJDIR_COMMON)
-@$(MKDIR) $(OBJDIR)
clean_all_obj:
-$(RM) $(OUTDIR)$(PATH_SEP)obj
###### Targets ##################
all_static : platform $(ALL_STATIC_LIBS)
all_staticx : platform $(ALL_STATICX_LIBS)
release_static : platform $(OUTDIR)$(PATH_SEP)$(RELEASE_LIB)
debug_static : platform $(OUTDIR)$(PATH_SEP)$(DEBUG_LIB)
stldebug_static : platform $(OUTDIR)$(PATH_SEP)$(STLDEBUG_LIB)
release_staticx : platform $(OUTDIR)$(PATH_SEP)$(RELEASEX_LIB)
debug_staticx : platform $(OUTDIR)$(PATH_SEP)$(DEBUGX_LIB)
stldebug_staticx : platform $(OUTDIR)$(PATH_SEP)$(STLDEBUGX_LIB)
install : all $(INSTALL_STEP)
clean : $(CLEAN_SPECIFIC)
-$(RM) $(RELEASE_OBJDIR_static) $(DEBUG_OBJDIR_static) $(STLDEBUG_OBJDIR_static) \
$(RELEASE_OBJDIR_staticx) $(DEBUG_OBJDIR_staticx) $(STLDEBUG_OBJDIR_staticx)
clobber : clean clean_all_obj
-$(RM) $(OUTDIR)$(PATH_SEP)$(DEBUG_NAME).* \
$(OUTDIR)$(PATH_SEP)$(RELEASE_NAME).* $(OUTDIR)$(PATH_SEP)$(STLDEBUG_NAME).*
# Need to link with a dummy main process to fully instantiate object files.
$(OUTDIR)$(PATH_SEP)$(RELEASE_LIB) : $(OUTDIR) $(RELEASE_OBJDIR_static) $(DEF_FILE) $(RELEASE_OBJECTS_static)
echo 'main() { }' >dummy_main.C
$(CXX) -o junk dummy_main.C $(RELEASE_OBJECTS_static) -lpthread
rm dummy_main.C
$(LINK) $(LINK_OUT)$(OUTDIR)$(PATH_SEP)$(RELEASE_LIB) $(LDFLAGS_RELEASE_static) $(RELEASE_OBJECTS_static) $(LDLIBS_RELEASE_static)
$(OUTDIR)$(PATH_SEP)$(RELEASEX_LIB) : $(OUTDIR) $(RELEASE_OBJDIR_staticx) $(DEF_FILE) $(RELEASE_OBJECTS_staticx)
echo 'main() { }' >dummy_main.C
$(CXX) -o junk dummy_main.C $(RELEASE_OBJECTS_staticx) -lpthread
rm dummy_main.C
$(LINK) $(LINK_OUT)$(OUTDIR)$(PATH_SEP)$(RELEASEX_LIB) $(LDFLAGS_RELEASE_static) $(RELEASE_OBJECTS_staticx) $(LDLIBS_RELEASE_static)
$(OUTDIR)$(PATH_SEP)$(STLDEBUG_LIB) : $(OUTDIR) $(STLDEBUG_OBJDIR_static) $(DEF_FILE) $(STLDEBUG_OBJECTS_static)
echo 'main() { }' >dummy_main.C
$(CXX) -o junk dummy_main.C $(STLDEBUG_OBJECTS_static) -lpthread
rm dummy_main.C
$(LINK) $(LINK_OUT)$(OUTDIR)$(PATH_SEP)$(STLDEBUG_LIB) $(LDFLAGS_STLDEBUG_static) $(STLDEBUG_OBJECTS_static) $(LDLIBS_STLDEBUG_static)
$(OUTDIR)$(PATH_SEP)$(STLDEBUGX_LIB) : $(OUTDIR) $(STLDEBUG_OBJDIR_staticx) $(DEF_FILE) $(STLDEBUG_OBJECTS_staticx)
echo 'main() { }' >dummy_main.C
$(CXX) -o junk dummy_main.C $(STLDEBUG_OBJECTS_staticx) -lpthread
rm dummy_main.C
$(LINK) $(LINK_OUT)$(OUTDIR)$(PATH_SEP)$(STLDEBUGX_LIB) $(LDFLAGS_STLDEBUG_static) $(STLDEBUG_OBJECTS_staticx) $(LDLIBS_STLDEBUG_static)
#install: all
# cp -p $(LIB_TARGET) ${D_LIB_TARGET} ../lib
%.s: %.cpp
$(CXX) $(CXXFLAGS) -S $< -o $@