# # Supported values of MX_ARCH: linux # # Note: Any code for win32 is not yet tested. # ifndef MX_ARCH MX_ARCH = linux endif ifndef MX_INSTALL_DIR MX_INSTALL_DIR = /opt/mx endif #-------------------------------------------------------------------------- ifeq ($(MX_ARCH),linux) MCCDAQ_DIR = /usr/local MCCDAQ_INCLUDES = $(MCCDAQ_DIR)/include MCCDAQ_LIBS = -L$(MCCDAQ_DIR)/lib -luldaq MCCDAQ_SRCS = $(MCCDAQ_DIR)/src/libuldaq-1.2.1 CFLAGS += -I$(MCCDAQ_INCLUDES) endif #-------------------------------------------------------------------------- all: mccdaq.mxo include ../../libMx/Makehead.$(MX_ARCH) CFLAGS += -I../../libMx -D__MX_LIBRARY__ MCCDAQ_OBJS = mccdaq.$(OBJ) i_mccdaq.$(OBJ) i_mccdaq_device.$(OBJ) \ d_mccdaq_ainput.$(OBJ) d_mccdaq_aoutput.$(OBJ) \ d_mccdaq_dinput.$(OBJ) d_mccdaq_doutput.$(OBJ) \ d_mccdaq_mcs.$(OBJ) d_mccdaq_pulser.$(OBJ) \ d_mccdaq_scaler.$(OBJ) d_mccdaq_timer.$(OBJ) #-------------------------------------------------------------------------- ifeq ($(MX_ARCH),linux) mccdaq.mxo: $(MCCDAQ_OBJS) $(CC) -shared -rdynamic -Wl,-soname,mccdaq.mxo \ -o mccdaq.mxo $(MCCDAQ_OBJS) $(MCCDAQ_LIBS) endif #-------------------------------------------------------------------------- ifeq ($(MX_ARCH),win32) mccdaq.mxo: $(MCCDAQ_OBJS) link /dll /debug /nologo /out:mccdaq.mxo \ /nodefaultlib:libc /nodefaultlib:libcmt \ $(MCCDAQ_OBJS) \ ..\\..\\libMx\\$(MX_LIBRARY_NAME) \ $(MCCDAQ_LIBRARY) # For VC2005 or later, embed the manifest in the module. if test -f mccdaq.mxo.manifest; then \ $(MSMANIFEST_TOOL) -nologo \ -outputresource:mccdaq.mxo\;2 \ -manifest mccdaq.mxo.manifest ; \ rm -f mccdaq.mxo.manifest; \ fi endif #-------------------------------------------------------------------------- mccdaq.$(OBJ): mccdaq.c i_mccdaq.h $(COMPILE) $(CFLAGS) mccdaq.c i_mccdaq.$(OBJ): i_mccdaq.c i_mccdaq.h $(COMPILE) $(CFLAGS) i_mccdaq.c i_mccdaq_device.$(OBJ): i_mccdaq_device.c i_mccdaq_device.h i_mccdaq.h $(COMPILE) $(CFLAGS) i_mccdaq_device.c d_mccdaq_ainput.$(OBJ): d_mccdaq_ainput.c d_mccdaq_ainput.h \ i_mccdaq_device.h i_mccdaq.h $(COMPILE) $(CFLAGS) d_mccdaq_ainput.c d_mccdaq_aoutput.$(OBJ): d_mccdaq_aoutput.c d_mccdaq_aoutput.h \ i_mccdaq_device.h i_mccdaq.h $(COMPILE) $(CFLAGS) d_mccdaq_aoutput.c d_mccdaq_dinput.$(OBJ): d_mccdaq_dinput.c d_mccdaq_dinput.h \ i_mccdaq_device.h i_mccdaq.h $(COMPILE) $(CFLAGS) d_mccdaq_dinput.c d_mccdaq_doutput.$(OBJ): d_mccdaq_doutput.c d_mccdaq_doutput.h \ i_mccdaq_device.h i_mccdaq.h $(COMPILE) $(CFLAGS) d_mccdaq_doutput.c d_mccdaq_mcs.$(OBJ): d_mccdaq_mcs.c d_mccdaq_mcs.h \ i_mccdaq_device.h i_mccdaq.h $(COMPILE) $(CFLAGS) d_mccdaq_mcs.c d_mccdaq_pulser.$(OBJ): d_mccdaq_pulser.c d_mccdaq_pulser.h \ i_mccdaq_device.h i_mccdaq.h $(COMPILE) $(CFLAGS) d_mccdaq_pulser.c d_mccdaq_scaler.$(OBJ): d_mccdaq_scaler.c d_mccdaq_scaler.h \ i_mccdaq_device.h i_mccdaq.h $(COMPILE) $(CFLAGS) d_mccdaq_scaler.c d_mccdaq_timer.$(OBJ): d_mccdaq_timer.c d_mccdaq_timer.h \ i_mccdaq_device.h i_mccdaq.h $(COMPILE) $(CFLAGS) d_mccdaq_timer.c install: mccdaq.mxo -mkdir $(MX_INSTALL_DIR)/lib/modules cp mccdaq.mxo $(MX_INSTALL_DIR)/lib/modules clean: -$(RM) *.mxo *.o *.obj *.exp *.ilk *.lib *.pdb *.manifest distclean: clean depend: #-------------------------------------------------------------------------- # # It should only be necessary to rewrite the 'i_mccdaq_enum_tables.h' # header file when you change the version of 'libuldaq' that you are # using. # enum_tables: i_mccdaq_enum_tables.h i_mccdaq_enum_tables.h: $(MCCDAQ_SRCS)/src/uldaq.h ./make_enum_tables $(MCCDAQ_SRCS)/src/uldaq.h i_mccdaq_enum_tables.h