Makefile

Go to the documentation of this file.
00001 #####################################################################
00002 #
00003 #  Name:         Makefile
00004 #  Created by:   Stefan Ritt
00005 #
00006 #  Contents:     Makefile for MIDAS binaries and examples under unix
00007 #
00008 #  $Id: Makefile 4842 2010-09-27 22:49:59Z amaudruz $
00009 #
00010 #####################################################################
00011 #
00012 # Usage:
00013 #        gmake             To compile the MIDAS library and binaries
00014 #        gmake install     To install the library and binaries
00015 #        gmake examples    To compile low-level examples (not necessary)
00016 #        gmake static      To make static executables for debugging
00017 #
00018 #
00019 # This makefile contains conditional code to determine the operating
00020 # system it is running under by evaluating the OSTYPE environment
00021 # variable. In case this does not work or if the GNU make is not
00022 # available, the conditional code has to be evaluated manually.
00023 # Remove all ifeq - endif blocks except the one belonging to the
00024 # current operating system. From this block remove only the first
00025 # and the last line (the one with the ifeq and endif statement).
00026 #
00027 # "gmake install" will copy MIDAS binaries, the midas library and
00028 # the midas include files to specific directories for each version.
00029 # You may change these directories to match your preferences.
00030 #####################################################################
00031 
00032 # get OS type from shell
00033 OSTYPE = $(shell uname)
00034 
00035 #
00036 # System direcotries for installation, modify if needed
00037 #
00038 
00039 ifndef PREFIX
00040 PREFIX     = /usr/local
00041 endif
00042 
00043 SYSBIN_DIR = $(PREFIX)/bin
00044 SYSLIB_DIR = $(PREFIX)/lib
00045 SYSINC_DIR = $(PREFIX)/include
00046 
00047 #
00048 # Option to set the shared library path on MIDAS executables
00049 #
00050 NEED_RPATH=1
00051 
00052 #
00053 # Option to use the static ROOT library libRoot.a
00054 #
00055 # To link midas with the static ROOT library, say "make ... NEED_LIBROOTA=1"
00056 #
00057 NEED_LIBROOTA=
00058 
00059 #
00060 # Optional libmysqlclient library for mlogger
00061 #
00062 # To add mySQL support to the logger, say "make ... NEED_MYSQL=1"
00063 #
00064 # Here we try to figure out automatically if mySQL is installed
00065 MYSQL_CONFIG := $(shell which mysql_config 2> /dev/null)
00066 ifdef MYSQL_CONFIG
00067   MYSQLINCDIR := $(shell mysql_config --cflags | sed -e 's,^.*-I\([^ ]*\).*$$,\1,' -e s/\'//g)
00068   NEED_MYSQL := $(shell if [ -e $(MYSQLINCDIR)/mysql.h ]; then echo 1; fi)
00069 endif
00070 
00071 #
00072 # Optional ODBC history support
00073 #
00074 HAVE_ODBC := $(shell if [ -e /usr/include/sql.h ]; then echo 1; fi)
00075 
00076 #
00077 # Option to use our own implementation of strlcat, strlcpy
00078 #
00079 NEED_STRLCPY=1
00080 
00081 #
00082 # Directory in which mxml.c/h resides. This library has to be checked
00083 # out separately from the midas CVS since it's used in several projects
00084 #
00085 MXML_DIR=../mxml
00086 
00087 #
00088 # Directory in which mscb.c/h resides. These files are necessary for
00089 # the optional MSCB support in mhttpd
00090 #
00091 MSCB_DIR=./mscb
00092 
00093 #
00094 # Optional zlib support for data compression in the mlogger and in the analyzer
00095 #
00096 NEED_ZLIB=
00097 
00098 #
00099 # Optional MSCB support for mhttpd
00100 #
00101 NEED_MSCB=1
00102 
00103 #####################################################################
00104 # Nothing needs to be modified after this line 
00105 #####################################################################
00106 
00107 #-----------------------
00108 # Common flags
00109 #
00110 CC = cc $(USERFLAGS)
00111 CXX = g++ $(USERFLAGS)
00112 CFLAGS = -g -O2 -Wall -Wuninitialized -I$(INC_DIR) -I$(DRV_DIR) -I$(MXML_DIR) -I$(MSCB_DIR) -L$(LIB_DIR) -DHAVE_FTPLIB
00113 
00114 #-----------------------
00115 # Ovevwrite MAX_EVENT_SIZE with environment variable
00116 #
00117 ifdef MIDAS_MAX_EVENT_SIZE
00118 CFLAGS += -DMAX_EVENT_SIZE=$(MIDAS_MAX_EVENT_SIZE)
00119 endif
00120 
00121 #-----------------------
00122 # Cross-compilation, change GCC_PREFIX
00123 #
00124 ifeq ($(OSTYPE),crosscompile)
00125 GCC_PREFIX=$(HOME)/linuxdcc/Cross-Compiler/gcc-4.0.2/build/gcc-4.0.2-glibc-2.3.6/powerpc-405-linux-gnu
00126 GCC_BIN=$(GCC_PREFIX)/bin/powerpc-405-linux-gnu-
00127 LIBS=-L$(HOME)/linuxdcc/userland/lib -pthread -lutil -lrt
00128 CC  = $(GCC_BIN)gcc
00129 CXX = $(GCC_BIN)g++
00130 OSTYPE = cross-ppc405
00131 OS_DIR = $(OSTYPE)
00132 CFLAGS += -DOS_LINUX
00133 NEED_MYSQL=
00134 HAVE_ODBC=
00135 endif
00136 
00137 #-----------------------
00138 # OSF/1 (DEC UNIX)
00139 #
00140 ifeq ($(HOSTTYPE),alpha)
00141 OSTYPE = osf1
00142 endif
00143 
00144 ifeq ($(OSTYPE),osf1)
00145 OS_DIR = osf1
00146 OSFLAGS = -DOS_OSF1
00147 FFLAGS = -nofor_main -D 40000000 -T 20000000
00148 LIBS = -lc -lbsd
00149 SPECIFIC_OS_PRG = 
00150 endif
00151 
00152 #-----------------------
00153 # Ultrix
00154 #
00155 ifeq ($(HOSTTYPE),mips)
00156 OSTYPE = ultrix
00157 endif
00158 
00159 ifeq ($(OSTYPE),ultrix)
00160 OS_DIR = ultrix
00161 OSFLAGS = -DOS_ULTRIX -DNO_PTY
00162 LIBS =
00163 SPECIFIC_OS_PRG = 
00164 endif
00165 
00166 #-----------------------
00167 # FreeBSD
00168 #
00169 ifeq ($(OSTYPE), FreeBSD)
00170 OS_DIR = freeBSD
00171 OSFLAGS = -DOS_FREEBSD
00172 LIBS = -lbsd -lcompat
00173 SPECIFIC_OS_PRG = 
00174 endif
00175 
00176 #-----------------------
00177 # MacOSX/Darwin is just a funny Linux
00178 #
00179 ifeq ($(OSTYPE),Darwin)
00180 OSTYPE = darwin
00181 endif
00182 
00183 ifeq ($(OSTYPE),darwin)
00184 OS_DIR = darwin
00185 OSFLAGS = -DOS_LINUX -DOS_DARWIN -DHAVE_STRLCPY -fPIC -Wno-unused-function
00186 OSFLAGS += -DUSE_POSIX_SHM
00187 LIBS = -lpthread
00188 SPECIFIC_OS_PRG = $(BIN_DIR)/mlxspeaker
00189 NEED_STRLCPY=
00190 NEED_RANLIB=1
00191 NEED_RPATH=
00192 SHLIB+=$(LIB_DIR)/libmidas-shared.dylib
00193 SHLIB+=$(LIB_DIR)/libmidas-shared.so
00194 endif
00195 
00196 #-----------------------
00197 # This is for Cygwin
00198 #
00199 ifeq ($(OSTYPE),CYGWIN_NT-5.1)
00200 OSTYPE = cygwin
00201 endif
00202 
00203 ifeq ($(OSTYPE),cygwin)
00204 
00205 OS_DIR = cygwin
00206 OSFLAGS = -DOS_LINUX -DOS_CYGWIN -Wno-unused-function
00207 LIBS = -lutil -lpthread
00208 endif
00209 
00210 #-----------------------
00211 # This is for Linux
00212 #
00213 ifeq ($(OSTYPE),Linux)
00214 OSTYPE = linux
00215 endif
00216 
00217 ifeq ($(OSTYPE),linux)
00218 
00219 # >2GB file support
00220 CFLAGS += -D_LARGEFILE64_SOURCE
00221 
00222 # include ZLIB support
00223 NEED_ZLIB=1
00224 
00225 OS_DIR = linux
00226 OSFLAGS = -DOS_LINUX -fPIC -Wno-unused-function
00227 # add to compile midas in 32-bit mode
00228 # OSFLAGS += -m32
00229 LIBS = -lutil -lpthread -lrt
00230 SPECIFIC_OS_PRG = $(BIN_DIR)/mlxspeaker $(BIN_DIR)/dio
00231 endif
00232 
00233 #-----------------------
00234 # This is for Solaris
00235 #
00236 ifeq ($(OSTYPE),solaris)
00237 CC = gcc
00238 OS_DIR = solaris
00239 OSFLAGS = -DOS_SOLARIS
00240 LIBS = -lsocket -lnsl
00241 SPECIFIC_OS_PRG = 
00242 endif
00243 
00244 #####################################################################
00245 # end of conditional code
00246 #####################################################################
00247 
00248 #
00249 # Midas directories
00250 #
00251 INC_DIR  = include
00252 SRC_DIR  = src
00253 UTL_DIR  = utils
00254 DRV_DIR  = drivers
00255 EXAM_DIR = examples
00256 
00257 #
00258 # Midas operating system dependent directories
00259 #
00260 LIB_DIR  = $(OS_DIR)/lib
00261 BIN_DIR  = $(OS_DIR)/bin
00262 
00263 #
00264 # targets
00265 #
00266 EXAMPLES = $(BIN_DIR)/consume $(BIN_DIR)/produce \
00267         $(BIN_DIR)/rpc_test $(BIN_DIR)/msgdump $(BIN_DIR)/minife \
00268         $(BIN_DIR)/minirc $(BIN_DIR)/odb_test
00269 
00270 PROGS = $(BIN_DIR)/mserver $(BIN_DIR)/mhttpd \
00271         $(BIN_DIR)/mlogger $(BIN_DIR)/odbedit \
00272         $(BIN_DIR)/mtape $(BIN_DIR)/mhist \
00273         $(BIN_DIR)/mstat $(BIN_DIR)/mcnaf \
00274         $(BIN_DIR)/mdump \
00275         $(BIN_DIR)/lazylogger \
00276         $(BIN_DIR)/mtransition \
00277         $(BIN_DIR)/mhdump \
00278         $(BIN_DIR)/mchart $(BIN_DIR)/stripchart.tcl \
00279         $(BIN_DIR)/webpaw $(BIN_DIR)/odbhist \
00280         $(BIN_DIR)/melog \
00281         $(BIN_DIR)/mfe_link_test \
00282         $(BIN_DIR)/mana_link_test \
00283         $(SPECIFIC_OS_PRG)
00284 
00285 ANALYZER = $(LIB_DIR)/mana.o
00286 
00287 ifdef CERNLIB
00288 ANALYZER += $(LIB_DIR)/hmana.o
00289 endif
00290 
00291 ifdef ROOTSYS
00292 ANALYZER += $(LIB_DIR)/rmana.o
00293 endif
00294 
00295 ifdef HAVE_ODBC
00296 PROGS += $(BIN_DIR)/mh2sql
00297 endif
00298 
00299 OBJS =  $(LIB_DIR)/midas.o $(LIB_DIR)/system.o $(LIB_DIR)/mrpc.o \
00300         $(LIB_DIR)/odb.o $(LIB_DIR)/ftplib.o \
00301         $(LIB_DIR)/mxml.o \
00302         $(LIB_DIR)/dm_eb.o \
00303         $(LIB_DIR)/history_midas.o \
00304         $(LIB_DIR)/history_sql.o \
00305         $(LIB_DIR)/history.o $(LIB_DIR)/alarm.o $(LIB_DIR)/elog.o
00306 
00307 ifdef NEED_STRLCPY
00308 OBJS += $(LIB_DIR)/strlcpy.o
00309 endif
00310 
00311 LIBNAME = $(LIB_DIR)/libmidas.a
00312 LIB     = $(LIBNAME)
00313 SHLIB   = $(LIB_DIR)/libmidas-shared.so
00314 
00315 VPATH = $(LIB_DIR):$(INC_DIR)
00316 
00317 all: check-mxml \
00318         $(OS_DIR) $(LIB_DIR) $(BIN_DIR) \
00319         $(LIBNAME) $(SHLIB) \
00320         $(ANALYZER) \
00321         $(LIB_DIR)/cnaf_callback.o \
00322         $(LIB_DIR)/mfe.o \
00323         $(LIB_DIR)/fal.o $(PROGS)
00324 
00325 dox:
00326         cd doxfiles; doxygen midox.cfg
00327         $(MAKE) dox_images
00328 
00329 dox_images: doxfiles/html/midasintro.jpg
00330 
00331 doxfiles/html/midasintro.jpg: midasdoc-images.tar.gz
00332         tar xzvf $^
00333         cp -pv images/* doxfiles/html/
00334 
00335 midasdoc-images.tar.gz:
00336         wget https://midas.psi.ch/download/doc/midasdoc-images.tar.gz
00337 
00338 linux32:
00339         $(MAKE) ROOTSYS= OS_DIR=linux-m32 USERFLAGS=-m32
00340 
00341 linux64:
00342         $(MAKE) ROOTSYS= OS_DIR=linux-m64 USERFLAGS=-m64
00343 
00344 clean32:
00345         $(MAKE) ROOTSYS= OS_DIR=linux-m32 USERFLAGS=-m32 clean
00346 
00347 clean64:
00348         $(MAKE) ROOTSYS= OS_DIR=linux-m64 USERFLAGS=-m64 clean
00349 
00350 crosscompile:
00351         echo OSTYPE=$(OSTYPE)
00352         $(MAKE) ROOTSYS= OS_DIR=$(OSTYPE)-crosscompile OSTYPE=crosscompile
00353 
00354 examples: $(EXAMPLES)
00355 
00356 #####################################################################
00357 
00358 #
00359 # create library and binary directories
00360 #
00361 
00362 $(OS_DIR):
00363         @if [ ! -d  $(OS_DIR) ] ; then \
00364            echo "Making directory $(OS_DIR)" ; \
00365            mkdir $(OS_DIR); \
00366         fi;
00367 
00368 $(LIB_DIR):
00369         @if [ ! -d  $(LIB_DIR) ] ; then \
00370            echo "Making directory $(LIB_DIR)" ; \
00371            mkdir $(LIB_DIR); \
00372         fi;
00373 
00374 $(BIN_DIR):
00375         @if [ ! -d  $(BIN_DIR) ] ; then \
00376            echo "Making directory $(BIN_DIR)" ; \
00377            mkdir $(BIN_DIR); \
00378         fi;
00379 
00380 #
00381 # main binaries
00382 #
00383 
00384 ifeq ($(NEED_MYSQL),1)
00385 CFLAGS      += -DHAVE_MYSQL $(shell mysql_config --include)
00386 MYSQL_LIBS  := -L/usr/lib/mysql $(shell mysql_config --libs)
00387 # only for mlogger LIBS        += $(MYSQL_LIBS)
00388 NEED_ZLIB = 1
00389 endif
00390 
00391 ifdef HAVE_ODBC
00392 CFLAGS      += -DHAVE_ODBC
00393 LIBS        += -lodbc
00394 ifeq ($(OSTYPE),darwin)
00395 LIBS        += /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation
00396 endif
00397 endif
00398 
00399 ifdef ROOTSYS
00400 ROOTLIBS    := $(shell $(ROOTSYS)/bin/root-config --libs)
00401 ROOTGLIBS   := $(shell $(ROOTSYS)/bin/root-config --glibs)
00402 ROOTCFLAGS  := $(shell $(ROOTSYS)/bin/root-config --cflags)
00403 
00404 ifdef NEED_RPATH
00405 ROOTLIBS   += -Wl,-rpath,$(ROOTSYS)/lib
00406 ROOTGLIBS  += -Wl,-rpath,$(ROOTSYS)/lib
00407 endif
00408 
00409 ifdef NEED_LIBROOTA
00410 ROOTLIBS    := $(ROOTSYS)/lib/libRoot.a -lssl -ldl -lcrypt
00411 ROOTGLIBS   := $(ROOTLIBS) -lfreetype
00412 endif
00413 
00414 CFLAGS     += -DHAVE_ROOT $(ROOTCFLAGS)
00415 
00416 endif # ROOTSYS
00417 
00418 ifdef NEED_ZLIB
00419 CFLAGS     += -DHAVE_ZLIB
00420 LIBS       += -lz
00421 endif
00422 
00423 ifdef NEED_MSCB
00424 CFLAGS     += -DHAVE_MSCB
00425 endif
00426 
00427 $(BIN_DIR)/mlogger: $(BIN_DIR)/%: $(SRC_DIR)/%.c
00428         $(CXX) $(CFLAGS) $(OSFLAGS) -o $@ $< $(LIB) $(ROOTLIBS) $(MYSQL_LIBS) $(LIBS)
00429 
00430 $(BIN_DIR)/%:$(SRC_DIR)/%.c
00431         $(CC) $(CFLAGS) $(OSFLAGS) -o $@ $< $(LIB) $(LIBS)
00432 
00433 $(BIN_DIR)/odbedit: $(SRC_DIR)/odbedit.c $(SRC_DIR)/cmdedit.c
00434         $(CC) $(CFLAGS) $(OSFLAGS) -o $@ $(SRC_DIR)/odbedit.c $(SRC_DIR)/cmdedit.c $(LIB) $(LIBS)
00435 
00436 
00437 ifdef NEED_MSCB
00438 $(BIN_DIR)/mhttpd: $(LIB_DIR)/mhttpd.o $(LIB_DIR)/mgd.o $(LIB_DIR)/mscb.o
00439         $(CXX) $(CFLAGS) $(OSFLAGS) -o $@ $^ $(LIB) $(LIBS) -lm
00440 else
00441 $(BIN_DIR)/mhttpd: $(LIB_DIR)/mhttpd.o $(LIB_DIR)/mgd.o
00442         $(CXX) $(CFLAGS) $(OSFLAGS) -o $@ $^ $(LIB) $(LIBS) -lm
00443 endif
00444 
00445 $(PROGS): $(LIBNAME)
00446 
00447 #
00448 # examples
00449 #
00450 
00451 $(BIN_DIR)/%:$(EXAM_DIR)/lowlevel/%.c
00452         $(CC) $(CFLAGS) $(OSFLAGS) -o $@ $< $(LIB) $(LIBS)
00453 
00454 $(BIN_DIR)/%:$(EXAM_DIR)/basic/%.c
00455         $(CC) $(CFLAGS) $(OSFLAGS) -o $@ $< $(LIB) $(LIBS)
00456 
00457 $(EXAMPLES): $(LIBNAME)
00458 
00459 #
00460 # midas library
00461 #
00462 
00463 $(LIBNAME): $(OBJS)
00464         rm -f $@
00465         ar -crv $@ $^
00466 ifdef NEED_RANLIB
00467         ranlib $@
00468 endif
00469 
00470 ifeq ($(OSTYPE),crosscompile)
00471 %.so: $(OBJS)
00472         rm -f $@
00473         $(CXX) -shared -o $@ $^ $(LIBS) -lc
00474 endif
00475 
00476 ifeq ($(OSTYPE),linux)
00477 %.so: $(OBJS)
00478         rm -f $@
00479         $(CXX) -shared -o $@ $^ $(LIBS) -lc
00480 endif
00481 
00482 ifeq ($(OSTYPE),darwin)
00483 %.dylib: $(OBJS)
00484         rm -f $@
00485         g++ -dynamiclib -dylib -o $@ $^ $(LIBS) -lc
00486 
00487 %.so: $(OBJS)
00488         rm -f $@
00489         g++ -bundle -flat_namespace -undefined suppress -o $@ $^ $(LIBS) -lc
00490 endif
00491 
00492 #
00493 # frontend and backend framework
00494 #
00495 
00496 $(LIB_DIR)/history_sql.o $(LIB_DIR)/history_midas.o $(LIB_DIR)/mhttpd.o $(LIB_DIR)/mlogger.o: history.h
00497 
00498 $(LIB_DIR)/mfe.o: msystem.h midas.h midasinc.h mrpc.h
00499 $(LIB_DIR)/fal.o: $(SRC_DIR)/fal.c msystem.h midas.h midasinc.h mrpc.h
00500 
00501 $(LIB_DIR)/fal.o: $(SRC_DIR)/fal.c msystem.h midas.h midasinc.h mrpc.h
00502         $(CXX) -Dextname -DMANA_LITE -c $(CFLAGS) $(OSFLAGS) -o $@ $<
00503 $(LIB_DIR)/mana.o: $(SRC_DIR)/mana.c msystem.h midas.h midasinc.h mrpc.h
00504         $(CC) -c $(CFLAGS) $(OSFLAGS) -o $@ $<
00505 $(LIB_DIR)/hmana.o: $(SRC_DIR)/mana.c msystem.h midas.h midasinc.h mrpc.h
00506         $(CC) -Dextname -DHAVE_HBOOK -c $(CFLAGS) $(OSFLAGS) -o $@ $<
00507 ifdef ROOTSYS
00508 $(LIB_DIR)/rmana.o: $(SRC_DIR)/mana.c msystem.h midas.h midasinc.h mrpc.h
00509         $(CXX) -DUSE_ROOT -c $(CFLAGS) $(OSFLAGS) $(ROOTCFLAGS) -o $@ $<
00510 endif
00511 
00512 #
00513 # library objects
00514 #
00515 
00516 $(LIB_DIR)/mhttpd.o: $(LIB_DIR)/%.o:$(SRC_DIR)/%.c
00517         $(CXX) -c $(CFLAGS) $(OSFLAGS) -o $@ $<
00518 
00519 $(LIB_DIR)/%.o:$(SRC_DIR)/%.c
00520         $(CC) -c $(CFLAGS) $(OSFLAGS) -o $@ $<
00521 
00522 $(LIB_DIR)/%.o:$(SRC_DIR)/%.cxx
00523         $(CXX) -c $(CFLAGS) $(OSFLAGS) -o $@ $<
00524 
00525 $(LIB_DIR)/mxml.o:$(MXML_DIR)/mxml.c
00526         $(CC) -c $(CFLAGS) $(OSFLAGS) -o $@ $(MXML_DIR)/mxml.c
00527 
00528 $(LIB_DIR)/strlcpy.o:$(MXML_DIR)/strlcpy.c
00529         $(CC) -c $(CFLAGS) $(OSFLAGS) -o $@ $(MXML_DIR)/strlcpy.c
00530 
00531 ifdef NEED_MSCB
00532 $(LIB_DIR)/mscb.o:$(MSCB_DIR)/mscb.c $(MSCB_DIR)/mscb.h
00533         $(CXX) -c $(CFLAGS) $(OSFLAGS) -o $@ $(MSCB_DIR)/mscb.c
00534 endif
00535 
00536 $(LIB_DIR)/midas.o: msystem.h midas.h midasinc.h mrpc.h
00537 $(LIB_DIR)/system.o: msystem.h midas.h midasinc.h mrpc.h
00538 $(LIB_DIR)/mrpc.o: msystem.h midas.h mrpc.h
00539 $(LIB_DIR)/odb.o: msystem.h midas.h midasinc.h mrpc.h
00540 $(LIB_DIR)/mdsupport.o: msystem.h midas.h midasinc.h
00541 $(LIB_DIR)/ftplib.o: msystem.h midas.h midasinc.h
00542 $(LIB_DIR)/mxml.o: msystem.h midas.h midasinc.h $(MXML_DIR)/mxml.h
00543 $(LIB_DIR)/alarm.o: msystem.h midas.h midasinc.h
00544 
00545 #
00546 # utilities
00547 #
00548 $(BIN_DIR)/%:$(UTL_DIR)/%.c
00549         $(CC) $(CFLAGS) $(OSFLAGS) -o $@ $< $(LIB) $(LIBS)
00550 
00551 
00552 $(BIN_DIR)/mcnaf: $(UTL_DIR)/mcnaf.c $(DRV_DIR)/camac/camacrpc.c
00553         $(CC) $(CFLAGS) $(OSFLAGS) -o $@ $(UTL_DIR)/mcnaf.c $(DRV_DIR)/camac/camacrpc.c $(LIB) $(LIBS)
00554 
00555 $(BIN_DIR)/mdump: $(UTL_DIR)/mdump.c $(SRC_DIR)/mdsupport.c
00556         $(CC) $(CFLAGS) $(OSFLAGS) -o $@ $(UTL_DIR)/mdump.c $(SRC_DIR)/mdsupport.c $(LIB) $(LIBS)
00557 
00558 $(BIN_DIR)/mfe_link_test: $(SRC_DIR)/mfe.c
00559         $(CC) $(CFLAGS) $(OSFLAGS) -DLINK_TEST -o $@ $(SRC_DIR)/mfe.c $(LIB) $(LIBS)
00560 
00561 $(BIN_DIR)/mana_link_test: $(SRC_DIR)/mana.c
00562         $(CC) $(CFLAGS) $(OSFLAGS) -DLINK_TEST -o $@ $(SRC_DIR)/mana.c $(LIB) $(LIBS)
00563 
00564 $(BIN_DIR)/mhdump: $(UTL_DIR)/mhdump.cxx
00565         $(CXX) $(CFLAGS) $(OSFLAGS) -o $@ $<
00566 
00567 $(BIN_DIR)/mtransition: $(SRC_DIR)/mtransition.cxx
00568         $(CXX) $(CFLAGS) $(OSFLAGS) -o $@ $< $(LIB) $(LIBS)
00569 
00570 $(BIN_DIR)/mh2sql: $(UTL_DIR)/mh2sql.cxx
00571         $(CXX) $(CFLAGS) $(OSFLAGS) -o $@ $^ $(LIBS)
00572 
00573 $(BIN_DIR)/lazylogger: $(SRC_DIR)/lazylogger.c $(SRC_DIR)/mdsupport.c
00574         $(CXX) $(CFLAGS) $(OSFLAGS) -o $@ $<  $(SRC_DIR)/mdsupport.c $(LIB) $(LIBS)
00575 
00576 $(BIN_DIR)/dio: $(UTL_DIR)/dio.c
00577         $(CC) $(CFLAGS) $(OSFLAGS) -o $@ $(UTL_DIR)/dio.c
00578 
00579 $(BIN_DIR)/stripchart.tcl: $(UTL_DIR)/stripchart.tcl
00580         cp -f $(UTL_DIR)/stripchart.tcl $(BIN_DIR)/. 
00581 
00582 
00583 #####################################################################
00584 
00585 static:
00586         rm -f $(PROGS)
00587         make USERFLAGS=-static
00588 
00589 #####################################################################
00590 
00591 install:
00592 # system programs and utilities
00593         @echo "... "
00594         @echo "... Installing programs and utilities to $(SYSBIN_DIR)"
00595         @echo "... "
00596 
00597         @for file in `find $(BIN_DIR) -type f | grep -v .svn` ; \
00598           do \
00599           install -v -D -m 755 $$file $(SYSBIN_DIR)/`basename $$file` ; \
00600           done
00601 
00602         install -v -m 755 $(UTL_DIR)/mcleanup $(SYSBIN_DIR)
00603         if [ -f $(SYSBIN_DIR)/dio ]; then chmod +s $(SYSBIN_DIR)/dio ; fi
00604         if [ -f $(SYSBIN_DIR)/mhttpd ]; then chmod +s $(SYSBIN_DIR)/mhttpd; fi
00605         if [ -f $(SYSBIN_DIR)/webpaw ]; then chmod +s $(SYSBIN_DIR)/webpaw; fi
00606         ln -fs $(SYSBIN_DIR)/stripchart.tcl $(SYSBIN_DIR)/stripchart
00607 
00608 # include
00609         @echo "... "
00610         @echo "... Installing include files to $(SYSINC_DIR)"
00611         @echo "... "
00612 
00613         @for file in `find $(INC_DIR) -type f | grep -v .svn` ; \
00614           do \
00615           install -v -D -m 644 $$file $(SYSINC_DIR)/`basename $$file` ; \
00616           done
00617 
00618 # library + objects
00619         @echo "... "
00620         @echo "... Installing library and objects to $(SYSLIB_DIR)"
00621         @echo "... "
00622 
00623         @for i in libmidas.a mana.o mfe.o fal.o ; \
00624           do \
00625           install -v -D -m 644 $(LIB_DIR)/$$i $(SYSLIB_DIR)/$$i ; \
00626           done
00627 
00628 ifdef CERNLIB
00629         install -v -m 644 $(LIB_DIR)/hmana.o $(SYSLIB_DIR)/hmana.o
00630 else
00631         rm -fv $(SYSLIB_DIR)/hmana.o
00632         chmod +s $(SYSBIN_DIR)/mhttpd
00633 endif
00634 ifdef ROOTSYS
00635         install -v -m 644 $(LIB_DIR)/rmana.o $(SYSLIB_DIR)/rmana.o
00636 else
00637         rm -fv $(SYSLIB_DIR)/rmana.o
00638 endif
00639         -rm -fv $(SYSLIB_DIR)/libmidas.so
00640         -install -v -m 644 $(LIB_DIR)/libmidas-shared.so $(SYSLIB_DIR)
00641 
00642 # drivers
00643         @echo "... "
00644         @echo "... Installing drivers to $(PREFIX)/drivers"
00645         @echo "... "
00646 
00647         @for file in `find $(DRV_DIR) -type f | grep -v .svn` ; \
00648           do \
00649           install -v -D -m 644 $$file $(PREFIX)/$$file ;\
00650           done
00651 
00652 #--------------------------------------------------------------
00653 # minimal_install
00654 minimal_install:
00655 # system programs
00656         @echo "... "
00657         @echo "... Minimal Install for programs to $(SYSBIN_DIR)"
00658         @echo "... "
00659 
00660         @for i in mserver mhttpd; \
00661           do \
00662           install -v -m 755 $(BIN_DIR)/$$i $(SYSBIN_DIR) ; \
00663           done
00664 
00665 ifeq ($(OSTYPE),linux)
00666         install -v -m 755 $(BIN_DIR)/dio $(SYSBIN_DIR)
00667 endif
00668         install -v -m 755 $(UTL_DIR)/mcleanup $(SYSBIN_DIR)
00669         if [ -f $(SYSBIN_DIR)/dio ]; then chmod +s $(SYSBIN_DIR)/dio; fi
00670         if [ -f $(SYSBIN_DIR)/mhttpd ]; then chmod +s $(SYSBIN_DIR)/mhttpd; fi
00671 
00672 # utilities
00673         @echo "... "
00674         @echo "... No utilities install to $(SYSBIN_DIR)"
00675         @echo "... "
00676 
00677 # include
00678         @echo "... "
00679         @echo "... No include install to $(SYSINC_DIR)"
00680         @echo "... "
00681 
00682 # library + objects
00683         @echo "... "
00684         @echo "... No library Install to $(SYSLIB_DIR)"
00685         @echo "... "
00686 
00687 indent:
00688         find . -name "*.[hc]" -exec indent -kr -nut -i3 -l90 {} \;
00689 
00690 clean:
00691         -rm -f $(LIB_DIR)/*.o $(LIB_DIR)/*.a $(LIB_DIR)/*.so $(LIB_DIR)/*.dylib
00692 
00693 mrproper : clean
00694         rm -rf $(OS_DIR)
00695         rm -rf vxworks/68kobj vxworks/ppcobj
00696 
00697 check-mxml :
00698 ifeq ($(NEED_STRLCPY), 1)
00699         @if [ ! -e $(MXML_DIR)/strlcpy.h ]; then \
00700           echo "please download mxml."; \
00701           echo "http://midas.psi.ch/htmldoc/quickstart.html"; \
00702           exit 1; \
00703         fi
00704 endif
00705         @if [ ! -e $(MXML_DIR)/mxml.h ]; then \
00706           echo "please download mxml."; \
00707           echo "http://midas.psi.ch/htmldoc/quickstart.html"; \
00708           exit 1; \
00709         fi
00710 

Midas DOC Version 3.0.0 ---- PSI Stefan Ritt ----
Contributions: Pierre-Andre Amaudruz - Sergio Ballestrero - Suzannah Daviel - Doxygen - Peter Green - Qing Gu - Greg Hackman - Gertjan Hofman - Paul Knowles - Exaos Lee - Rudi Meier - Glenn Moloney - Dave Morris - John M O'Donnell - Konstantin Olchanski - Renee Poutissou - Tamsen Schurman - Andreas Suter - Jan M.Wouters - Piotr Adam Zolnierczuk