##################################################################### # # Name: Makefile # Created by: Stefan Ritt # # Contents: Makefile for MIDAS binaries and examples under # Windows NT # # $Id$ # ##################################################################### # # System directories # SYSBIN_DIR = $(WINDIR)\system32 SYSLIB_DIR = c:\msdev\lib SYSINC_DIR = c:\msdev\include # # Midas related directories INC_DIR = include SRC_DIR = src UTL_DIR = utils DRV_DIR = drivers EXAM_DIR = examples ZLIB_DIR = zlib-1.0.4 MXML_DIR = \mxml OS_DIR = nt CC = cl OSFLAGS = /D WIN32 CFLAGS = /EHsc /I$(INC_DIR) /I$(DRV_DIR) /I$(MXML_DIR) /nologo /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE LIBS = GIT_REVISION = $(INC_DIR)/git-revision.h # # Midas operating system dependent directories LIB_DIR = $(OS_DIR)\lib BIN_DIR = $(OS_DIR)\bin # targets EXAMPLES = $(BIN_DIR)/consume.exe $(BIN_DIR)/produce.exe \ $(BIN_DIR)/rpc_test.exe $(BIN_DIR)/msgdump.exe \ $(BIN_DIR)/minife.exe $(BIN_DIR)/minirc.exe \ $(BIN_DIR)/odb_test.exe OBJS = $(LIB_DIR)/midas.obj \ $(LIB_DIR)/system.obj \ $(LIB_DIR)/mrpc.obj \ $(LIB_DIR)/odb.obj \ $(LIB_DIR)/ftplib.obj \ $(LIB_DIR)/mxml.obj \ $(LIB_DIR)/alarm.obj \ $(LIB_DIR)/elog.obj \ $(LIB_DIR)/history.obj \ $(LIB_DIR)/strlcpy.obj LIBRARY = $(LIB_DIR)/midas.lib all: $(LIB_DIR) $(BIN_DIR) \ $(LIB_DIR)/mana.obj \ $(LIB_DIR)/mfe.obj \ $(BIN_DIR)/mserver.exe \ $(BIN_DIR)/mhttpd.exe \ $(BIN_DIR)/mcnaf.exe \ $(BIN_DIR)/mlogger.exe \ $(BIN_DIR)/mtransition.exe \ $(BIN_DIR)/mtape.exe \ $(BIN_DIR)/mhist.exe \ $(BIN_DIR)/mstat.exe \ $(BIN_DIR)/mdump.exe \ $(BIN_DIR)/odbhist.exe \ $(BIN_DIR)/lazylogger.exe \ $(BIN_DIR)/odbedit.exe \ $(GIT_REVISION) examples: $(EXAMPLES) # create library and binary directories $(LIB_DIR): if not exist $(OS_DIR) mkdir $(OS_DIR) if not exist $(LIB_DIR) mkdir $(LIB_DIR) $(BIN_DIR): if not exist $(OS_DIR) mkdir $(OS_DIR) if not exist $(BIN_DIR) mkdir $(BIN_DIR) # git revision file $(GIT_REVISION): $(SRC_DIR)/midas.c $(SRC_DIR)/odb.c $(SRC_DIR)/system.c /cygwin/bin/sh -c /cygdrive/c/midas/makegit > include/git-revision.h # main binaries $(BIN_DIR)/mserver.exe: $(LIBRARY) $(SRC_DIR)/mserver.c $(CC) $(CFLAGS) /Fe$(BIN_DIR)/mserver.exe $(SRC_DIR)/mserver.c $(LIBRARY) $(LIBS) wsock32.lib $(BIN_DIR)/mhttpd.exe: $(LIBRARY) $(SRC_DIR)/mhttpd.cxx $(SRC_DIR)/mgd.c $(CC) $(CFLAGS) /Fe$(BIN_DIR)/mhttpd.exe /Tp$(SRC_DIR)/mhttpd.cxx /Tp$(SRC_DIR)/sequencer.cxx /Tp$(SRC_DIR)/history_midas.cxx $(SRC_DIR)/history_common.cxx $(SRC_DIR)/history_schema.cxx $(SRC_DIR)/history_odbc.cxx $(SRC_DIR)/mongoose.c $(SRC_DIR)/mgd.c $(LIB_DIR)/alarm.obj $(LIB_DIR)/mxml.obj $(LIBRARY) $(LIBS) wsock32.lib $(BIN_DIR)/mlogger.exe: $(LIBRARY) $(SRC_DIR)/mlogger.cxx $(CC) $(CFLAGS) /Fe$(BIN_DIR)/mlogger.exe /Tp$(SRC_DIR)/mlogger.cxx /Tp$(SRC_DIR)/history_midas.cxx $(SRC_DIR)/history_common.cxx $(SRC_DIR)/history_schema.cxx $(SRC_DIR)/history_odbc.cxx $(LIBRARY) $(LIBS) $(BIN_DIR)/mtransition.exe: $(LIBRARY) $(SRC_DIR)/mtransition.cxx $(CC) $(CFLAGS) /Fe$(BIN_DIR)/mtransition.exe $(SRC_DIR)/mtransition.cxx $(LIBRARY) $(LIBS) $(BIN_DIR)/lazylogger.exe: $(LIBRARY) $(SRC_DIR)/lazylogger.cxx $(CC) $(CFLAGS) /Fe$(BIN_DIR)/lazylogger.exe /Tp$(SRC_DIR)/lazylogger.cxx $(SRC_DIR)/mdsupport.cxx $(LIBRARY) $(LIBS) $(BIN_DIR)/odbedit.exe: $(LIBRARY) $(SRC_DIR)/odbedit.cxx $(SRC_DIR)/cmdedit.cxx $(CC) $(CFLAGS) /Fe$(BIN_DIR)/odbedit.exe $(SRC_DIR)/odbedit.cxx $(SRC_DIR)/cmdedit.cxx $(SRC_DIR)/mjson.cxx $(SRC_DIR)/json_paste.cxx $(LIBRARY) $(LIBS) # examples $(BIN_DIR)/consume.exe: $(LIBRARY) $(EXAM_DIR)/lowlevel/consume.c $(CC) $(CFLAGS) /Fe$(BIN_DIR)/consume.exe $(EXAM_DIR)/lowlevel/consume.c $(LIBRARY) $(LIBS) $(BIN_DIR)/produce.exe: $(LIBRARY) $(EXAM_DIR)/lowlevel/produce.c $(CC) $(CFLAGS) /Fe$(BIN_DIR)/produce.exe $(EXAM_DIR)/lowlevel/produce.c $(LIBRARY) $(LIBS) $(BIN_DIR)/rpc_test.exe: $(LIBRARY) $(EXAM_DIR)/lowlevel/rpc_test.c $(CC) $(CFLAGS) /Fe$(BIN_DIR)/rpc_test.exe $(EXAM_DIR)/lowlevel/rpc_test.c $(LIBRARY) $(LIBS) $(BIN_DIR)/msgdump.exe: $(LIBRARY) $(EXAM_DIR)/basic/msgdump.c $(CC) $(CFLAGS) /Fe$(BIN_DIR)/msgdump.exe $(EXAM_DIR)/basic/msgdump.c $(LIBRARY) $(LIBS) $(BIN_DIR)/minife.exe: $(LIBRARY) $(EXAM_DIR)/basic/minife.c $(CC) $(CFLAGS) /Fe$(BIN_DIR)/minife.exe $(EXAM_DIR)/basic/minife.c $(LIBRARY) $(LIBS) $(BIN_DIR)/minirc.exe: $(LIBRARY) $(EXAM_DIR)/basic/minirc.c $(CC) $(CFLAGS) /Fe$(BIN_DIR)/minirc.exe $(EXAM_DIR)/basic/minirc.c $(LIBRARY) $(LIBS) $(BIN_DIR)/odb_test.exe: $(LIBRARY) $(EXAM_DIR)/basic/odb_test.c $(CC) $(CFLAGS) /Fe$(BIN_DIR)/odb_test.exe $(EXAM_DIR)/basic/odb_test.c $(LIBRARY) $(LIBS) # midas library $(LIBRARY): $(OBJS) link $(OBJS) wsock32.lib winmm.lib /subsystem:windows /dll /machine:I386 /out:$(LIB_DIR)/midas.dll /implib:$(LIBRARY) # library objects $(LIB_DIR)/midas.obj: $(SRC_DIR)/midas.c $(INC_DIR)/msystem.h $(INC_DIR)/midas.h $(INC_DIR)/midasinc.h $(INC_DIR)/mrpc.h $(CC) /c /DMIDAS_DLL $(CFLAGS) /Fo$(LIB_DIR)/midas.obj $(SRC_DIR)/midas.c $(LIB_DIR)/system.obj: $(SRC_DIR)/system.c $(INC_DIR)/msystem.h $(INC_DIR)/midas.h $(INC_DIR)/midasinc.h $(INC_DIR)/mrpc.h $(CC) /c /DMIDAS_DLL $(CFLAGS) /Fo$(LIB_DIR)/system.obj $(SRC_DIR)/system.c $(LIB_DIR)/mrpc.obj: $(SRC_DIR)/mrpc.c $(INC_DIR)/msystem.h $(INC_DIR)/midas.h $(INC_DIR)/mrpc.h $(CC) /c /DMIDAS_DLL $(CFLAGS) /Fo$(LIB_DIR)/mrpc.obj $(SRC_DIR)/mrpc.c $(LIB_DIR)/alarm.obj: $(SRC_DIR)/alarm.c $(INC_DIR)/msystem.h $(INC_DIR)/midas.h $(INC_DIR)/mrpc.h $(CC) /c /DMIDAS_DLL $(CFLAGS) /Fo$(LIB_DIR)/alarm.obj $(SRC_DIR)/alarm.c $(LIB_DIR)/elog.obj: $(SRC_DIR)/elog.c $(INC_DIR)/msystem.h $(INC_DIR)/midas.h $(INC_DIR)/mrpc.h $(CC) /c /DMIDAS_DLL $(CFLAGS) /Fo$(LIB_DIR)/elog.obj $(SRC_DIR)/elog.c $(LIB_DIR)/history.obj: $(SRC_DIR)/history.c $(INC_DIR)/msystem.h $(INC_DIR)/midas.h $(INC_DIR)/mrpc.h $(CC) /c /DMIDAS_DLL $(CFLAGS) /Fo$(LIB_DIR)/history.obj $(SRC_DIR)/history.c $(LIB_DIR)/odb.obj: $(SRC_DIR)/odb.c $(INC_DIR)/msystem.h $(INC_DIR)/midas.h $(INC_DIR)/midasinc.h $(INC_DIR)/mrpc.h $(CC) /c /DMIDAS_DLL $(CFLAGS) /Fo$(LIB_DIR)/odb.obj $(SRC_DIR)/odb.c $(LIB_DIR)/ftplib.obj: $(SRC_DIR)/ftplib.c $(INC_DIR)/msystem.h $(INC_DIR)/midas.h $(INC_DIR)/midasinc.h $(CC) /c /DMIDAS_DLL $(CFLAGS) /Fo$(LIB_DIR)/ftplib.obj $(SRC_DIR)/ftplib.c $(LIB_DIR)/mxml.obj: $(MXML_DIR)/mxml.c $(INC_DIR)/msystem.h $(INC_DIR)/midas.h $(INC_DIR)/midasinc.h $(MXML_DIR)/mxml.h $(CC) /c /DMIDAS_DLL $(CFLAGS) /Fo$(LIB_DIR)/mxml.obj $(MXML_DIR)/mxml.c $(LIB_DIR)/strlcpy.obj: $(MXML_DIR)/strlcpy.c $(MXML_DIR)/strlcpy.h $(CC) /c /DEXPORT_DLL $(CFLAGS) /Fo$(LIB_DIR)/strlcpy.obj $(MXML_DIR)/strlcpy.c # frontend + backend $(LIB_DIR)/mfe.obj: $(SRC_DIR)/mfe.c $(INC_DIR)/msystem.h $(INC_DIR)/midas.h $(INC_DIR)/midasinc.h $(INC_DIR)/mrpc.h $(CC) /c $(CFLAGS) /Fo$(LIB_DIR)/mfe.obj $(SRC_DIR)/mfe.c $(LIB_DIR)/mana.obj: $(SRC_DIR)/mana.cxx $(INC_DIR)/msystem.h $(INC_DIR)/midas.h $(INC_DIR)/midasinc.h $(INC_DIR)/mrpc.h $(GIT_REVISION) $(CC) /c $(CFLAGS) /Fo$(LIB_DIR)/mana.obj $(SRC_DIR)/mana.cxx # utilities $(BIN_DIR)/mdump.exe: $(LIBRARY) $(UTL_DIR)/mdump.cxx $(CC) $(CFLAGS) $(OSFLAGS) /Fe$(BIN_DIR)/mdump.exe $(UTL_DIR)/mdump.cxx $(SRC_DIR)/mdsupport.cxx $(LIBRARY) $(LIBS) $(BIN_DIR)/odbhist.exe: $(LIBRARY) $(UTL_DIR)/odbhist.c $(CC) $(CFLAGS) $(OSFLAGS) /Fe$(BIN_DIR)/odbhist.exe $(UTL_DIR)/odbhist.c $(LIBRARY) $(LIBS) $(BIN_DIR)/mtape.exe: $(LIBRARY) $(UTL_DIR)/mtape.c $(CC) $(CFLAGS) $(OSFLAGS) /Fe$(BIN_DIR)/mtape.exe $(UTL_DIR)/mtape.c $(LIBRARY) $(LIBS) $(BIN_DIR)/mhist.exe: $(LIBRARY) $(UTL_DIR)/mhist.cxx $(CC) $(CFLAGS) $(OSFLAGS) /Fe$(BIN_DIR)/mhist.exe $(UTL_DIR)/mhist.cxx $(SRC_DIR)/history_midas.cxx $(SRC_DIR)/history_common.cxx $(SRC_DIR)/history_schema.cxx $(SRC_DIR)/history_odbc.cxx $(LIBRARY) $(LIBS) $(BIN_DIR)/mstat.exe: $(LIBRARY) $(UTL_DIR)/mstat.c $(CC) $(CFLAGS) $(OSFLAGS) /Fe$(BIN_DIR)/mstat.exe $(UTL_DIR)/mstat.c $(LIBRARY) $(LIBS) wsock32.lib $(BIN_DIR)/mcnaf.exe:$(LIBRARY) $(UTL_DIR)/mcnaf.c $(DRV_DIR)/camac/camacrpc.c $(CC) $(CFLAGS) $(OSFLAGS) /Fe$(BIN_DIR)/mcnaf.exe $(UTL_DIR)/mcnaf.c $(DRV_DIR)/camac/camacrpc.c $(LIBRARY) wsock32.lib $(LIBS) clean: del $(LIB_DIR)\*.obj del $(BIN_DIR)\*.*