# ********************************************************************** # # Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. # # This copy of Ice is licensed to you under the terms described in the # ICE_LICENSE file included in this distribution. # # ********************************************************************** # # Select an installation base directory. The directory will be created # if it does not exist. # prefix ?= /opt/Ice-$(VERSION) # # The "root directory" for runpath embedded in executables. Can be unset # to avoid adding a runpath to Ice executables. # embedded_runpath_prefix ?= /opt/Ice-$(VERSION_MAJOR).$(VERSION_MINOR) # # Define OPTIMIZE as yes if you want to build with # optimization. Otherwise Ice is build with debug information. # #OPTIMIZE = yes # # Define LP64 as yes or no if you want force a 32 or 64 bit. The # default is platform-dependent # #LP64 ?= yes # # Define USE_READLINE as yes if you want to build parts of Ice using # readline on platforms where readline is available (see # PLATFORM_HAS_READLINE in Make.rules.$(UNAME)) # # readline is used by a number of Ice admin programs to provide # command history, an optional feature. # # readline is licensed by the Free Software Foundation under the GNU # Public License v2, and cannot be combined with GPL-incompatible # software in any program. In particular the OpenSSL license is # GPL-incompatible. # # If you combine Ice with more GPL-incompatible software, or have # licensed Ice under a commercial (non-GPL) license, you should ponder # the licensing implications of using readline. # USE_READLINE ?= no # # If you want to use STLport, set STLPORT_HOME to the STLport # installation directory. If STLPORT_HOME is undefined or empty, # STLport is not used. # #STLPORT_HOME ?= /opt/STLport # # If libbzip2 is not installed in a standard location where the # compiler can find it, set BZIP2_HOME to the bzip2 installation # directory. # #BZIP2_HOME ?= /opt/bzip2 # # If Berkeley DB is not installed in a standard location where the # compiler can find it, set DB_HOME to the Berkeley DB installation # directory. # #DB_HOME ?= /opt/db # # If expat is not installed in a standard location where the compiler # can find it, set EXPAT_HOME to the expat installation directory. # #EXPAT_HOME ?= /opt/expat # # If OpenSSL is not installed in a standard location where the # compiler can find it, set OPENSSL_HOME to the OpenSSL installation # directory. # #OPENSSL_HOME ?= /opt/openssl # # Define if your OpenSSL requires Kerberos, and if Kerberos is not # installed in a standard location # KERBEROS_HOME ?= /usr/kerberos # # If readline is not installed in a standard location where the # compiler can find it, AND you want to use readline, set # READLINE_HOME to the readline installation directory. # #READLINE_HOME ?= /opt/readline # # Support for creating static libraries is currently provided only for # building the Ice-E translators. # #STATICLIBS = yes # ---------------------------------------------------------------------- # Don't change anything below this line! # ---------------------------------------------------------------------- SHELL = /bin/sh VERSION_MAJOR = 3 VERSION_MINOR = 2 VERSION = 3.2.1 SOVERSION = 32 bindir = $(top_srcdir)/bin libdir = $(top_srcdir)/lib includedir = $(top_srcdir)/include slicedir = $(top_srcdir)/slice install_includedir = $(prefix)/include install_slicedir = $(prefix)/slice install_schemadir = $(prefix)/schema install_docdir = $(prefix)/doc INSTALL = cp -fp INSTALL_PROGRAM = ${INSTALL} INSTALL_LIBRARY = ${INSTALL} INSTALL_DATA = ${INSTALL} OBJEXT = .o UNAME := $(shell uname) # # Platform specific definitions # include $(top_srcdir)/config/Make.rules.$(UNAME) ifeq ($(LP64),yes) install_bindir := $(prefix)/bin$(lp64binsuffix) install_libdir := $(prefix)/lib$(lp64suffix) libsubdir := lib$(lp64suffix) else install_bindir := $(prefix)/bin install_libdir := $(prefix)/lib libsubdir := lib endif ifneq ($(embedded_runpath_prefix),) ifeq ($(LP64),yes) runpath_libdir := $(embedded_runpath_prefix)/lib$(lp64suffix) else runpath_libdir := $(embedded_runpath_prefix)/lib endif endif ifneq ($(STLPORT_HOME),) STLPORT_FLAGS = -I$(STLPORT_HOME)/include/stlport ifeq ($(OPTIMIZE),yes) STLPORT_LIBS = -L$(STLPORT_HOME)/$(libsubdir) -lstlport_gcc else STLPORT_LIBS = -L$(STLPORT_HOME)/$(libsubdir) -lstlport_gcc_stldebug endif else STLPORT_FLAGS = STLPORT_LIBS = endif OPENSSL_FLAGS = $(if $(OPENSSL_HOME),-I$(OPENSSL_HOME)/include) -I$(KERBEROS_HOME)/include OPENSSL_LIBS = $(if $(OPENSSL_HOME),-L$(OPENSSL_HOME)/$(libsubdir)) -lssl -lcrypto OPENSSL_RPATH_LINK = $(if $(OPENSSL_HOME),$(call rpathlink,$(OPENSSL_HOME)/$(libsubdir))) BZIP2_FLAGS = $(if $(BZIP2_HOME),-I$(BZIP2_HOME)/include) BZIP2_LIBS = $(if $(BZIP2_HOME),-L$(BZIP2_HOME)/$(libsubdir)) -lbz2 BZIP2_RPATH_LINK = $(if $(BZIP2_HOME),$(call rpathlink,$(BZIP2_HOME)/$(libsubdir))) ifneq ($(DB_HOME),) DB_FLAGS = -I$(DB_HOME)/include DB_LIBS = -L$(DB_HOME)/$(libsubdir) -ldb_cxx DB_RPATH_LINK = $(call rpathlink,$(DB_HOME)/$(libsubdir)) else ifeq ($(shell if [ -d /usr/include/db45 -a -d /usr/$(libsubdir)/db45 ] ; then echo yes; fi), yes) DB_FLAGS = -I/usr/include/db45 DB_LIBS = -L/usr/$(libsubdir)/db45 -ldb_cxx else DB_LIBS = -ldb_cxx endif endif EXPAT_FLAGS = $(if $(EXPAT_HOME),-I$(EXPAT_HOME)/include) EXPAT_LIBS = $(if $(EXPAT_HOME),-L$(EXPAT_HOME)/$(libsubdir)) -lexpat EXPAT_RPATH_LINK = $(if $(EXPAT_HOME),$(call rpathlink,$(EXPAT_HOME)/$(libsubdir))) ifeq ($(PLATFORM_HAS_READLINE),yes) ifeq ($(USE_READLINE),yes) READLINE_FLAGS = -DHAVE_READLINE $(if $(READLINE_HOME),-I$(READLINE_HOME)/include) READLINE_LIBS = $(if $(READLINE_HOME),-L$(READLINE_HOME)/$(libsubdir)) -lreadline -lncurses endif endif CPPFLAGS = -I$(includedir) $(STLPORT_FLAGS) ICECPPFLAGS = -I$(slicedir) SLICE2CPPFLAGS = $(ICECPPFLAGS) LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir) ifeq ($(FLEX_NOLINE),yes) FLEXFLAGS := -L else FLEXFLAGS := endif ifeq ($(BISON_NOLINE),yes) BISONFLAGS := -dvtl else BISONFLAGS := -dvt endif # # Default functions for shared library names # ifeq ($(mklibfilename),) mklibfilename = $(if $(2),lib$(1).so.$(2),lib$(1).so) endif ifeq ($(mksoname),) mksoname = $(if $(2),lib$(1).so.$(2),lib$(1).so) endif ifeq ($(mklibname),) ifeq ($(STATICLIBS),yes) mklibname = lib$(1).a else mklibname = lib$(1).so endif endif ifndef mklibtargets ifeq ($(STATICLIBS),yes) mklibtargets = $(3) else mklibtargets = $(1) $(2) $(3) endif endif ifeq ($(mkshlib),) $(error You need to define mkshlib in Make.rules.$(UNAME)) endif ifeq ($(installlib),) ifeq ($(STATICLIBS),yes) installlib = $(INSTALL) $(2)/$(5) $(1); \ chmod a+rx $(1)/$(5) else installlib = $(INSTALL) $(2)/$(3) $(1); \ rm -f $(1)/$(4); ln -s $(3) $(1)/$(4); \ rm -f $(1)/$(5); ln -s $(4) $(1)/$(5); \ chmod a+rx $(1)/$(3) endif endif ifeq ($(installdata),) installdata = $(INSTALL_DATA) $(1) $(2); \ chmod a+r $(2)/$(notdir $(1)) endif ifeq ($(installprogram),) installprogram = $(INSTALL_PROGRAM) $(1) $(2); \ chmod a+rx $(2)/$(notdir $(1)) endif ifeq ($(mkdir),) mkdir = mkdir $(1) ; \ chmod a+rx $(1) endif SLICEPARSERLIB = $(libdir)/$(call mklibfilename,Slice,$(VERSION)) SLICE2CPP = $(bindir)/slice2cpp SLICE2XSD = $(bindir)/slice2xsd SLICE2FREEZE = $(bindir)/slice2freeze SLICE2DOCBOOK = $(bindir)/slice2docbook EVERYTHING = all depend clean install .SUFFIXES: .SUFFIXES: .cpp .c .o .cpp.o: $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $< .c.o: $(CC) -c $(CPPFLAGS) $(CFLAGS) $< $(HDIR)/%F.h: $(SDIR)/%F.ice $(SLICE2CPP) $(SLICEPARSERLIB) rm -f $(HDIR)/$(*F)F.h $(*F)F.cpp $(SLICE2CPP) $(SLICE2CPPFLAGS) $< mv $(*F)F.h $(HDIR) rm -f $(*F)F.cpp $(HDIR)/%.h %.cpp: $(SDIR)/%.ice $(SLICE2CPP) $(SLICEPARSERLIB) rm -f $(HDIR)/$(*F).h $(*F).cpp $(SLICE2CPP) $(SLICE2CPPFLAGS) $< mv $(*F).h $(HDIR) %.h %.cpp: %.ice $(SLICE2CPP) $(SLICEPARSERLIB) rm -f $(*F).h $(*F).cpp $(SLICE2CPP) $(SLICE2CPPFLAGS) $(*F).ice #%.h %.cpp: %.y # rm -f $(*F).h $(*F).cpp # bison $(BISONFLAGS) $< # mv $(*F).tab.c $(*F).cpp # mv $(*F).tab.h $(*F).h # rm -f $(*F).output #%.cpp: %.l # flex $(FLEXFLAGS) $< # rm -f $@ # echo '#include ' > $@ # cat lex.yy.c >> $@ # rm -f lex.yy.c all:: $(SRCS) $(TARGETS) depend:: $(SRCS) $(patsubst $(SDIR)/%.ice,$(HDIR)/%.h,$(wildcard $(SDIR)/*F.ice)) $(SLICE_SRCS) -rm -f .depend if test -n "$(SRCS)" ; then \ $(CXX) -DMAKEDEPEND -M $(CXXFLAGS) $(CPPFLAGS) $(SRCS) | \ $(top_srcdir)/config/makedepend.py >> .depend; \ fi if test -n "$(SLICE_SRCS)" ; then \ $(SLICE2CPP) --depend $(SLICE2CPPFLAGS) $(SLICE_SRCS) | \ $(top_srcdir)/config/makedepend.py >> .depend; \ fi clean:: -rm -f $(TARGETS) -rm -f core *.o *.bak ifneq ($(SLICE_SRCS),) depend:: $(foreach slice, $(SLICE_SRCS), echo '$(slice): $$(SLICE2CPP) $$(SLICEPARSERLIB)' >> .depend;) clean:: rm -f $(addsuffix .cpp, $(basename $(notdir $(SLICE_SRCS)))) rm -f $(addsuffix .h, $(basename $(notdir $(SLICE_SRCS)))) endif ifneq ($(HDIR),) clean:: rm -f $(addprefix $(HDIR), $(addsuffix .h, $(basename $(subst $(SDIR),, \ $(filter $(SDIR)/%.ice, $(SLICE_SRCS)))))) endif ifneq ($(TEMPLATE_REPOSITORY),) clean:: rm -fr $(TEMPLATE_REPOSITORY) endif install::