blob: 18eb4edd9bee52ba4ecd63945b10b86de6e1bfe9 [file] [log] [blame] [edit]
######################################################################
#
# Toro circuit file parser library
#
# Note: This make file is dependent on the platform-specific ISM
# environment variable. ISM is platform-specific and is used
# to determine various build switches and directories.
#
# This make file currently supports (csh/tcsh shells):
# - setenv ISM linux_x86_64
# - setenv ISM linux_i686
# - setenv ISM sun8
#
# This make file currently supports (ksh/sh shells):
# - export ISM=linux_x86_64
# - export ISM=linux_i686
# - export ISM=sun8
#
######################################################################
######################################################################
# PCCTS options
######################################################################
PCCTS = ../../libpccts_133MR7
PCCTSINC = -I$(PCCTS)/h -I$(ISM) -I.
PCCTSBIN = $(PCCTS)/bin.$(ISM)
PCCTSLIB = -L$(PCCTS)/$(ISM) -lh
PCCTSGRAM = TCP_CircuitGrammar
PCCTSSCAN = TCP_CircuitScanner_c
PCCTSPARSER = TCP_CircuitParser_c
ANTLR = $(PCCTSBIN)/antlr -o $(ISM)
ANTLRFLAGS = -CC -gh
DLG = $(PCCTSBIN)/dlg -o $(ISM)
DLGFLAGS = -CC -cl $(PCCTSSCAN)
DLGFILE = parser.dlg
ANTLRGEN = $(ISM)/$(PCCTSGRAM).cpp $(ISM)/$(PCCTSPARSER).cpp $(ISM)/$(PCCTSPARSER).h \
$(ISM)/$(DLGFILE) $(ISM)/stdpccts.h $(ISM)/tokens.h
DLGGEN = $(ISM)/$(PCCTSSCAN).cpp $(ISM)/$(PCCTSSCAN).h
######################################################################
# Compiler options
######################################################################
pC++linux_x86_64 = /usr/bin/gcc
pC++linux_i686 = /usr/bin/gcc
pC++sun8 = /apps/SUNWspro_6.0-U2/bin/CC
pC++ = $(pC++$(ISM))
PIClinux_x86_64 = -shared
PIClinux_i686 = -shared
PICsun8 = -G -KPIC
PIC = $(PIC$(ISM))
CFLAGSlinux_x86_64 = -w -static -fPIC -DLINUX_X86_64
CFLAGSlinux_i686 = -w -static -fPIC -fpermissive -DLINUX_I686
CFLAGSsun8 = -w -xarch=v9 -library=iostream,Cstd -DLP64 -DSUN8
CFLAGS = $(CFLAGS$(ISM)) $(PCCTSINC)\
-I. \
-I../TCD_CircuitDesign \
-I../TLO_LogicalObjects \
-I../TPO_PhysicalObjects \
-I../TNO_NetObjects \
-I../TGS_GeometricShapes \
-I../TGO_GeometricObjects \
-I../TIO_InputOutputHandlers \
-I../TC_Common \
-I../../libcommon_c/pcre/SRC \
-I$(PCCTS)/pcctsGeneric -I$(PCCTS)/h
######################################################################
# Linker options
######################################################################
LINKERlinux_x86_64 = /usr/bin/ld
LINKERlinux_i686 = /usr/bin/ld
LINKERsun8 = /usr/ccs/bin/ld
LINKER = $(LINKER$(ISM))
LFLAGSlinux_x86_64 = -shared
LFLAGSlinux_i686 = -shared
LFLAGSsun8 = -G -library=iostream -xarch=v9
LFLAGS = $(LFLAGS$(ISM))
######################################################################
# Program files
######################################################################
PROG = libTCP_CircuitParser
EXE = ../$(ISM)/$(PROG).a
ARCMDlinux_x86_64 = $(LINKER) -r -o $(ISM)/$(PROG).a $(OBJECTS) $(PCCTSOBJ) ; \
mv $(ISM)/$(PROG).a $(EXE)
ARCMDlinux_i686 = $(LINKER) -r -o $(ISM)/$(PROG).a $(OBJECTS) $(PCCTSOBJ) ; \
mv $(ISM)/$(PROG).a $(EXE)
ARCMDsun8 = $(pC++) -xar -xarch=v9 -library=iostream -o $(ISM)/$(PROG).a $(OBJECTS) $(PCCTSOBJ) ; \
mv $(ISM)/$(PROG).a $(EXE)
ARCMD = $(ARCMD$(ISM))
SOLlinux_x86_64 = so
SOLlinux_i686 = so
SOLsun8 = so
SOL = $(SOL$(ISM))
LIBSOlinux_x86_64 = ../linux_x86_64/$(PROG).$(SOL)
LIBSOlinux_i686 = ../linux_i686/$(PROG).$(SOL)
LIBSOsun8 = ../sun8/$(PROG).$(SOL)
LIBSO = $(LIBSO$(ISM))
OBJSlinux_x86_64 = linux_x86_64/TCP_CircuitFile.o \
linux_x86_64/TCP_CircuitHandler.o
OBJSlinux_i686 = linux_i686/TCP_CircuitFile.o \
linux_i686/TCP_CircuitHandler.o
OBJSsun8 = sun8/TCP_CircuitFile.o \
sun8/TCP_CircuitHandler.o
OBJECTS = $(OBJS$(ISM))
######################################################################
# Target rules
######################################################################
BUILD_TARGET =
all:
make Debug
Optimized:
make $(EXE) CFLAGS="-O2 $(CFLAGS)" BUILD_TARGET=Optimized
Debug:
make $(EXE) CFLAGS="-g -DDEBUG $(CFLAGS)" BUILD_TARGET=Debug
Gprof:
make $(EXE) CFLAGS="-pg -g -DDEBUG $(CFLAGS)" BUILD_TARGET=Debug
clean:
rm -f $(EXE) $(ISM)/*.o
rm -f $(ANTLRGEN) $(DLGGEN)
.cxx.o:;
.cxx.a:;
######################################################################
# PCCTS rules
######################################################################
PCCTSOBJ = $(ISM)/$(PCCTSGRAM).o $(ISM)/$(PCCTSPARSER).o $(ISM)/$(PCCTSSCAN).o
PCCTSSRC = $(ISM)/$(PCCTSGRAM).cpp
$(PCCTSOBJ): $(ANTLRGEN) $(DLGGEN)
$(ANTLRGEN): $(PCCTSGRAM).g
$(ANTLR) $(ANTLRFLAGS) $(PCCTSGRAM).g
$(DLGGEN): $(PCCTSGRAM).g
$(DLG) $(DLGFLAGS) $(ISM)/$(DLGFILE)
######################################################################
# Program rules
######################################################################
$(EXE): $(LIBSO)
$(ARCMD)
$(LIBSOlinux_x86_64): $(PCCTSOBJ) $(OBJECTS) Makefile
$(pC++) $(LFLAGS) -o $(ISM)/$(PROG).$(SOL) $(OBJECTS) $(PCCTSOBJ) ; \
mv $(ISM)/$(PROG).$(SOL) $@
$(LIBSOlinux_i686): $(PCCTSOBJ) $(OBJECTS) Makefile
$(pC++) $(LFLAGS) -o $(ISM)/$(PROG).$(SOL) $(OBJECTS) $(PCCTSOBJ) ; \
mv $(ISM)/$(PROG).$(SOL) $@
$(LIBSOsun8): $(PCCTSOBJ) $(OBJECTS) Makefile
$(pC++) $(LFLAGS) -o $(ISM)/$(PROG).$(SOL) $(OBJECTS) $(PCCTSOBJ) ; \
mv $(ISM)/$(PROG).$(SOL) $@
$(PCCTSOBJ):
$(pC++) -o $@ -c $(ISM)/$(@F:.o=.cpp) $(PIC) $(CFLAGS)
$(OBJECTS): $(ISM)/%.o:%.cxx
$(pC++) -o $@ -c $(@F:.o=.cxx) $(PIC) $(CFLAGS)
######################################################################
# Library rules
######################################################################
../$(ISM)/libTCD_CircuitDesign.a:
cd ../TCD_CircuitDesign ; $(MAKE) $(BUILD_TARGET)
../$(ISM)/libTLO_LogicalObjects.a:
cd ../TLO_LogicalObjects ; $(MAKE) $(BUILD_TARGET)
../$(ISM)/libTPO_PhysicalObjects.a:
cd ../TPO_PhysicalObjects ; $(MAKE) $(BUILD_TARGET)
../$(ISM)/libTNO_NetObjects.a:
cd ../TNO_NetObjects ; $(MAKE) $(BUILD_TARGET)
../$(ISM)/libTGS_GeometricShapes.a:
cd ../TGS_GeometricShapes ; $(MAKE) $(BUILD_TARGET)
../$(ISM)/libTGO_GeometricObjects.a:
cd ../TGO_GeometricObjects ; $(MAKE) $(BUILD_TARGET)
../$(ISM)/libTIO_InputOutputHandlers.a:
cd ../TIO_InputOutputHandlers ; $(MAKE) $(BUILD_TARGET)
../$(ISM)/libTC_Common.a:
cd ../TC_Common ; $(MAKE) $(BUILD_TARGET)