255 lines
5.0 KiB
Makefile
255 lines
5.0 KiB
Makefile
#
|
|
# Author: Jim Kowalkowski
|
|
# Date: 2/96
|
|
#
|
|
# $Id$
|
|
#
|
|
# $Log$
|
|
# Revision 1.1 1996/06/25 19:11:26 jbk
|
|
# new in EPICS base
|
|
#
|
|
#
|
|
|
|
# Simple build system for all the platforms I've tested on
|
|
|
|
VPATH=.:..
|
|
|
|
# ifdef IN_OBJ_DIR
|
|
# ifeq ($(VX_BUILD),vw)
|
|
# CCTYPE = $(VX_BUILD)
|
|
# else
|
|
# CCTYPE = $(HOST_ARCH)
|
|
# endif
|
|
#
|
|
# else
|
|
ifdef HOST_ARCH
|
|
CCTYPE = $(HOST_ARCH)
|
|
else
|
|
# CCTYPE = solaris
|
|
# CCTYPE = sun4
|
|
# CCTYPE = linux
|
|
# CCTYPE = hp700
|
|
# CCTYPE = vw
|
|
# VX_BUILD = vw
|
|
endif
|
|
# endif
|
|
|
|
ifeq ($(CCTYPE),vw)
|
|
|
|
GNU_DIR = /home/phoebus/HIDEOS/gnu_install
|
|
# GNU_DIR = /home/hideos/gnu_install
|
|
GNU_BIN = $(GNU_DIR)/bin
|
|
VERBOSE = -Wall -Winline
|
|
OPTIM = -O # -DNO_DUMP_TEST -g
|
|
VX_DIR = /usr/local/vw/vxV52/vw
|
|
VX_INCLUDE = $(VX_DIR)/h
|
|
|
|
ifeq ($(CCTYPE),sun4)
|
|
CC_NORMAL = acc
|
|
else
|
|
CC_NORMAL = cc
|
|
endif
|
|
|
|
CC = $(GNU_BIN)/sun3-gcc
|
|
CCC = $(GNU_BIN)/sun3-g++
|
|
LD = $(GNU_BIN)/sun3-ld
|
|
AR = $(GNU_BIN)/sun3-ar
|
|
RANLIB = $(GNU_BIN)/sun3-ranlib
|
|
|
|
LIB_FLAGS =
|
|
LDFLAGS = -L. -r -N -T../vxldscript.MRI
|
|
CCFLAGS = -B$(GNU_DIR)/lib/gcc-lib/ $(OPTIM) -W \
|
|
$(VERBOSE) -nostdinc --no-builtin -m68040 -Wa,"-m68040" \
|
|
-DCPU_FAMILY=MC680X0 -DCPU=MC68040 -DvxWorks -DV5_vxWorks \
|
|
-I. -I.. -I$(VX_INCLUDE)
|
|
|
|
else
|
|
|
|
ifeq ($(CCTYPE),solaris)
|
|
VERBOSE = +w -D__EXTENSIONS__
|
|
CC = cc
|
|
CCC = CC
|
|
CC_NORMAL = $(CC)
|
|
LIB_FLAGS = # -lposix4
|
|
POSIX_LEVEL = 2 # 4
|
|
EPICS = /home/phoebus/JBK/test3.12/include
|
|
RANLIB = echo
|
|
endif
|
|
|
|
ifeq ($(CCTYPE),sun4)
|
|
VERBOSE =
|
|
CC=purify acc
|
|
CCC=purify CC
|
|
# CCC = CC
|
|
# CC = acc
|
|
CC_NORMAL = acc
|
|
LIB_FLAGS =
|
|
POSIX_LEVEL = 2
|
|
EPICS = /home/phoebus/JBK/test3.12/include
|
|
RANLIB = ranlib
|
|
endif
|
|
|
|
ifeq ($(CCTYPE),linux)
|
|
VERBOSE = -Wall -Winline
|
|
CC = gcc
|
|
CCC = g++
|
|
CC_NORMAL = $(CC)
|
|
LIB_FLAGS =
|
|
POSIX_LEVEL = 2
|
|
EPICS = /home/jbk/include
|
|
RANLIB = ranlib
|
|
endif
|
|
|
|
ifeq ($(CCTYPE),hp700)
|
|
VERBOSE =
|
|
CC = c89 -Aa
|
|
CCC = CC +a1
|
|
CC_NORMAL = $(CC)
|
|
LIB_FLAGS =
|
|
POSIX_LEVEL = 2
|
|
RANLIB = ranlib
|
|
endif
|
|
|
|
LD = ld
|
|
AR = ar
|
|
|
|
# -p is for profiling
|
|
OPTIM = -g # -O -p
|
|
COMP_FLAGS = -D_POSIX_C_SOURCE=$(POSIX_LEVEL) -D$(CCTYPE)
|
|
BOTH_FLAGS = -I. -I.. $(VERBOSE) $(OPTIM) -I$(EPICS) $(COMP_FLAGS)
|
|
LDFLAGS = $(BOTH_FLAGS) -L.
|
|
CCFLAGS = $(BOTH_FLAGS)
|
|
|
|
endif
|
|
|
|
CXXFLAGS = $(CCFLAGS)
|
|
CFLAGS = $(CXXFLAGS)
|
|
CXX = $(CCC)
|
|
|
|
DEPLIB = libgdd_t.a
|
|
DEST_DEPLIB = libgdd.a
|
|
LIBFLAGS = -lgdd $(LIB_FLAGS)
|
|
LIBFLAGS_T = -lgdd_t $(LIB_FLAGS)
|
|
|
|
# modules that go into the library
|
|
SRCS = gdd.cc gddTest.cc aitConvert.cc gddAppTable.cc gddNewDel.cc \
|
|
gddAppDefs.cc aitTypes.c
|
|
OBJS = gdd.o gddTest.o aitConvert.o gddAppTable.o gddNewDel.o \
|
|
gddAppDefs.o aitTypes.o
|
|
INCS = gdd.h aitConvert.h aitTypes.h gddNewDel.h gddUtils.h
|
|
|
|
# -----------------------------
|
|
ifndef HOST_ARCH
|
|
problem:
|
|
@echo "you must set the HOST_ARCH environment variable"
|
|
@echo "set VX_BUILD=vw to build for vxWorks"
|
|
endif
|
|
|
|
# -----------------------------
|
|
ifndef IN_OBJ_DIR
|
|
ifdef VX_BUILD
|
|
first_rule: $(HOST_ARCH)/Makefile $(VX_BUILD)/Makefile
|
|
else
|
|
first_rule: $(HOST_ARCH)/Makefile
|
|
endif
|
|
(cd $(HOST_ARCH); gnumake all)
|
|
ifdef VX_BUILD
|
|
(HOST_ARCH=$(VX_BUILD); cd $(VX_BUILD); gnumake HOST_ARCH=$(VX_BUILD))
|
|
# (HOST_ARCH=$(VX_BUILD); gnumake HOST_ARCH=$(VX_BUILD))
|
|
endif
|
|
|
|
$(HOST_ARCH)/Makefile: Makefile
|
|
if [ ! -d "$(HOST_ARCH)" ]; \
|
|
then \
|
|
mkdir $(HOST_ARCH); \
|
|
fi
|
|
echo "IN_OBJ_DIR=1" > $@
|
|
cat $< >> $@
|
|
|
|
ifdef VX_BUILD
|
|
$(VX_BUILD)/Makefile: Makefile
|
|
if [ ! -d "$(VX_BUILD)" ]; \
|
|
then \
|
|
mkdir $(VX_BUILD); \
|
|
fi
|
|
echo "IN_OBJ_DIR=1" > $@
|
|
cat $< >> $@
|
|
endif
|
|
endif
|
|
|
|
# -----------------------------
|
|
all: aitGen gddApps.h $(DEPLIB) dbMapper.o $(DEST_DEPLIB)
|
|
|
|
check_arch:
|
|
@echo "architecture=$(CCTYPE)"
|
|
|
|
$(DEST_DEPLIB): $(DEPLIB)
|
|
cp $^ $@
|
|
|
|
# -----------------------------
|
|
$(DEPLIB): $(OBJS)
|
|
/bin/rm -f $@
|
|
$(AR) r $@ $^
|
|
cp $@ $(DEST_DEPLIB)
|
|
ifeq ($(CCTYPE),sun4)
|
|
$(RANLIB) $@
|
|
$(RANLIB) $(DEST_DEPLIB)
|
|
endif
|
|
ifeq ($(CCTYPE),vw)
|
|
$(RANLIB) $@
|
|
$(RANLIB) $(DEST_DEPLIB)
|
|
endif
|
|
|
|
# -----------------------------
|
|
ifneq ($(CCTYPE),vw)
|
|
genApps: genApps.o $(OBJS) $(DEPLIB)
|
|
$(CCC) $(LDFLAGS) -o $@ $< $(LIBFLAGS_T)
|
|
|
|
gddApps.h: genApps
|
|
./$< gddApps.h
|
|
cp gddApps.h ..
|
|
|
|
genApps.o: genApps.cc gddAppTable.h aitTypes.h $(INCS)
|
|
|
|
else
|
|
genApps:
|
|
@echo "Not going to build $@ for vw"
|
|
endif
|
|
|
|
aitGen: aitGen.o aitTypes.o
|
|
$(CC_NORMAL) -O -o $@ $^
|
|
|
|
aitGen.o: aitGen.c aitTypes.h
|
|
$(CC_NORMAL) -D$(CCTYPE) -O -c -I. $<
|
|
|
|
aitConvertGenerated.cc: aitGen aitTypes.h aitConvert.h aitConvert.cc aitTypes.c
|
|
./aitGen
|
|
|
|
# -----------------------------
|
|
gdd.o: gdd.cc $(INCS)
|
|
gddTest.o: gddTest.cc $(INCS)
|
|
gddNewDel.o: gddNewDel.cc gddNewDel.h gddUtils.h
|
|
gddAppTable.o: gddAppTable.cc gddAppTable.h $(INCS)
|
|
gddAppDefs.o: gddAppDefs.cc gddAppTable.h $(INCS)
|
|
aitTypes.o: aitTypes.c aitTypes.h
|
|
aitConvert.o: aitConvert.cc aitConvertGenerated.cc aitConvert.h aitTypes.h
|
|
|
|
dbMapper.o: dbMapper.cc dbMapper.h gddApps.h
|
|
$(CCC) $(CCFLAGS) -c $<
|
|
ifeq ($(CCTYPE),solaris)
|
|
# $(CCC) -xar -o $(DEST_DEPLIB) $(CCFLAGS) $<
|
|
# $(CCC) -xar -o $(DEST_DEPLIB) $(CCFLAGS) $@
|
|
endif
|
|
$(AR) r $(DEST_DEPLIB) $@
|
|
$(RANLIB) $(DEST_DEPLIB)
|
|
|
|
ifdef IN_OBJ_DIR
|
|
clean:
|
|
/bin/rm -f *.o *.a aitGen genApps
|
|
/bin/rm -f *pure* p.out mon.out
|
|
/bin/rm -rf Templates.DB ptrepository
|
|
else
|
|
clean:
|
|
/bin/rm -rf $(HOST_ARCH) $(VX_BUILD) gddApps.h
|
|
endif
|