#************************************************************************* # Copyright (c) 2002 The University of Chicago, as Operator of Argonne # National Laboratory. # Copyright (c) 2002 The Regents of the University of California, as # Operator of Los Alamos National Laboratory. # EPICS BASE Versions 3.13.7 # and higher are distributed subject to a Software License Agreement found # in file LICENSE that is included with this distribution. #************************************************************************* # Makefile.Host for base/src/sample # # # Sample Makefile.Host showing all possible entries # that are allowed using RULES.Host. # TOP = ../../.. include $(TOP)/config/CONFIG_BASE CMPLR = STRICT # Add-on CFLAGS that are needed by this Makefile. # (If possible, all system specific flags should be # defined in CONFIG.Host.$(ARCH_CLASS)) # # These CFLAGS rules also apply to these Makefile-variables: # CXXFLAGS C++ flags # LDFLAGS link flags # # This is used on all systems: USR_CFLAGS = -DVAR=value -Ddefine_for_all_systems # This is added to the above, but only for ARCH_CLASS=BSD: USR_CFLAGS_BSD = -DVERSION='Berkeley enhanced' # ..only for WIN32: USR_CFLAGS_WIN32 = -DVERSION='WIN32 port' # # -nil- is special: # if USR_CFLAGS_SYSV was undefined or empty, .._DEFAULT would have # been used. # To indicate # "yes, there is a special USR_CFLAGS for SYSV, but it's empty" # you have to set it to -nil-: USR_CFLAGS_SYSV = -nil- # .. for all other arch classes: USR_CFLAGS_DEFAULT = -DVERSION='generic Unix' # CFLAGS that are only used to compile a_file.c or a_file.cc: # a_file_CFLAGS = -DIN_A_FILE a_file_CFLAGS_WIN32 = -DVERSION='WIN32 port' # --------------------------------------------------------- # general rule for all .c .cc .h .hh files and scripts: # # In here you supply just the filename without '../' etc. # While building in an O.xxx subdir, the # sources are extracted from either the # '..' # dir or - if it exists - the dir # '../$(ARCH_CLASS)' # is preferred. # --------------------------------------------------------- # includes to install from this Makefile # # again: if INC_$(ARCH_CLASS) is defined, it is added to INC, # otherwise INC_DEFAULT (if defined) is added: # INC_DEFAULT = for_all_but_WIN32_or_hp700.h INC_WIN32 = only_for_WIN32.h INC_hp700 = -nil- # hp700 uses no special include INC = file.h # -------------------------------------------------------------------- # defining a library # -------------------------------------------------------------------- # # Contents of a library are specified via LIBSRCS. # From this the platform specific object names (.o, .obj, ...) # are derived automatically. # # Platform specific objects: # use LIBOBJS_$(ARCH_CLASS) or .._DEFAULT # # Platform specific files can also be put in # separate os/ARCH_CLASS directories! # # For almost every file the seach order is: # ./os/ARCH_CLASS # ./os/generic # . # So usually only LIBSRCS should be sufficient! # LIBSRCS = file_for_lib.c another_file.cc LIBSRCS_DEFAULT = posix.c LIBSRCS_WIN32 = win32_special.c LIBSRCS_BSD = -nil- # Library to build: # lib$(LIBRARY).a or ..dll/..exp/..lib # # Currently you can build only one (1) lib per Makefile.Host! # LIBRARY=libname # if SHARED_LIBRARIES is YES then shared and archive libraries will # both be built #SHARED_LIBRARIES = YES # # Library version SHRLIB_VERSION = # On WIN32 results in /version:$(SHRLIB_VERSION) link option # On Unix type hosts .$(SHRLIB_VERSION) is appended to library name # -------------------------------------------------------------------- # defining products (executable programs) # -------------------------------------------------------------------- # # if SRCS is undefined, it defaults to $(PROD).c SRCS=a.c b.c c.c # SRCS that are only used for PROD a_file # a_file_SRCS = aa.c bb.c # EPICS libs needed to link PROD, TESTPROD and sharable library # # note that DLL_LIBS (the libraries needed to link a shareable # library) is created by default from the PROD/SYS libraries specified # below minus the name of the sharable library (LIBRARY) # # # for all systems: PROD_LIBS = Com Ca # for most systems: PROD_LIBS_DEFAULT = mathlib PROD_LIBS_WIN32 = -nil- # system libs needed to link PROD, TESTPROD and sharable library # # for all systems: SYS_PROD_LIBS = m # for most systems: SYS_PROD_LIBS_DEFAULT = foolib SYS_PROD_LIBS_WIN32 = -nil- # other libs needed to link PROD, TESTPROD and sharable library # # for all systems: USR_LIBS = Xm Xt X11 Xm_DIR = $(MOTIF_LIB) Xt_DIR = $(X11_LIB) X11_DIR = $(X11_LIB) # for most systems: USR_LIBS_DEFAULT = foolib USR_LIBS_WIN32 = -nil- foolib_DIR = $(FOO_LIB) # Product, # may be caRepeater.o -> caRepeater # or caRepeater.obj -> caRepeater.exe PROD = prod PROD_DEFAULT = product_for_rest PROD_WIN32 = product_only_for_WIN32 PROD_BSD = product_only_for_BSD PROD_SYSV = product_only_for_SYSV # Product version PROD_VERSION = # On WIN32 results in /version:$(SHRLIB_VERSION) link option # On Unix type hosts PROD_VERSION) is ignored # Scripts to install # # If there is both ../$(SCRIPT) and ../$(ARCH_CLASS)/$(SCRIPT), # the latter, system specific version will be installed! # SCRIPTS_DEFAULT = script_for_rest SCRIPTS_WIN32 = script_only_for_WIN32 SCRIPTS_BSD = script_only_for_BSD SCRIPTS = script # if you want to build products locally without installing: # TESTPROD = test # put all definitions before the following include line # put all rules after the following include line include $(TOP)/config/RULES.Host # EOF Makefile.Host