# # Name: Makehead.irix # # Purpose: This file is used to customize operating system and installation # dependent features of the MX makefiles. This version is customized # for SGI Irix. # # Normally, the only things that end users may have to modify in this file are # the definitions of INCLUDES, LIB_DIRS, LIBRARIES, and USE_64_BITS. # # # If you wish to compile a 64-bit version of MX, uncomment the following line. # #USE_64_BITS = -64 # INCLUDES = $(MX_INCLUDES) $(READLINE_INCLUDES) LIB_DIRS = -L$(MX_LIB_DIR) LIBRARIES = -lexc -lm -lmalloc -lpthread #LIB_DIRS = -L$(MX_LIB_DIR) $(EPICS_LIB_DIRS) #LIBRARIES = $(EPICS_LIBRARIES) -lexc -lm -lmalloc -lpthread # # Motor will be linked with the bundled copy of 'editline' if you use the # following definitions. # READLINE_LIB_DIRS = -L../tools/unix/src/editline READLINE_LIBRARIES = -ledit # # If you prefer to link motor to GNU Readline instead, uncomment the # following definitions. # #READLINE_LIB_DIRS = -L/usr/local/lib #READLINE_LIBRARIES = -lreadline -ltermlib # # You may also need to modify some of the following definitions, depending # on the drivers you plan to use. # # # EPICS includes and libraries. # EPICS_ARCH = sgi EPICS_TOP = /usr/local/epics EPICS_INCLUDES = -I$(EPICS_TOP)/base/include EPICS_LIB_DIRS = -L$(EPICS_TOP)/base/lib/$(EPICS_ARCH) EPICS_LIBRARIES = -lca -lCom # # Under SGI Irix 6.5, the following -woff arguments must be present for MX # to be built successfully. They suppress warnings that I do not feel # reflect real problems with the code. The warnings in question are: # # 1110 - statement is unreachable # 1174 - parameter "xxxx" was declared but never referenced # 1209 - controlling expression is constant # 1552 - variable "xxxx" was set but never used # # By contrast, under SGI Irix 6.3, the following -woff arguments must _not_ # be present, since the listed error numbers did not exist for the 6.3 # compiler. # # # MIPSpro C compiler version 7.2.1 under Irix 6.5 # SUPPRESSED = -woff 85,134,1110,1174,1209,1552 # # MIPS C compiler under Irix 6.3 # #SUPPRESSED = # #======================================================================== # # Generally, you should not have to modify anything after this point. # CC = cc CFLAGS = -g $(INCLUDES) -DOS_IRIX $(EXTRA_FLAGS) -DDEBUG \ -w2 -fullwarn $(SUPPRESSED) $(USE_64_BITS) CFLAGS_EPICS = -g $(INCLUDES) -DOS_IRIX $(EXTRA_FLAGS) -DDEBUG \ -w2 $(SUPPRESSED) $(USE_64_BITS) $(EPICS_INCLUDES) # Special cases for individual files. CFLAGS_MX_EPICS = $(CFLAGS_EPICS) CFLAGS_MX_VERS = $(CFLAGS) -DMX_MAJOR_VERSION=$(MX_MAJOR_VERSION) \ -DMX_MINOR_VERSION=$(MX_MINOR_VERSION) \ -DMX_UPDATE_VERSION=$(MX_UPDATE_VERSION) COMPILE = $(CC) -c DEFINE = -D MAKEDEPEND = cc -M $(CFLAGS_EPICS) *.c > Makefile.depend MAKEDEPEND_CLEAN = rm Makefile.depend # #--------------------------------------------------- # MX_LIB_SRCS = mx_driver.c $(MX_CORE_SRCS) $(MX_DRIVER_SRCS) # # This is here because SGI make can't cope with makefile lines # like XXX_OBJS = $(XXX_SRCS:.c=.$(OBJ)). It doesn't understand # the last $(OBJ). MX_LIB_OBJS = $(MX_LIB_SRCS:.c=.o) ../tools/strlcpy.o ../tools/strlcat.o MOTOR_OBJS = $(MOTOR_SRCS:.c=.o) SERVER_OBJS = $(SERVER_SRCS:.c=.o) UPDATE_OBJS = $(UPDATE_SRCS:.c=.o) MXDRIVERINFO_OBJS = $(MXDRIVERINFO_SRCS:.c=.o) # #--------------------------------------------------- # RM = rm -f MAKE = make OBJ = o EXEOUT = -o DOTEXE = # #--------------------------------------------------- # MX_LIB_DIR = ../libMx MX_INC_DIR = $(MX_LIB_DIR) MX_INCLUDES = -I$(MX_INC_DIR) MX_LIBRARY_PATH = $(MX_LIB_DIR)/$(MX_LIBRARY_NAME) MX_SONAME = libMx.so.$(MX_MAJOR_VERSION) MX_LIBRARY_NAME = $(MX_SONAME) MX_LIBRARY_STATIC_NAME = libMx.a MX_LIBRARY_DELETE = rm $(MX_LIBRARY_NAME) libMx.so $(MX_LIBRARY_STATIC_NAME) $(MX_LIBRARY_NAME): $(MX_LIB_OBJS) -$(MX_LIBRARY_DELETE) ld -shared $(USE_64_BITS) -woff 85,134 -o $(MX_LIBRARY_NAME) \ $(LIB_DIRS) $(MX_LIB_OBJS) $(LIBRARIES) -lc ln -sf $(MX_LIBRARY_NAME) libMx.so ar rcs $(MX_LIBRARY_STATIC_NAME) $(MX_LIB_OBJS) -rm so_locations library_install: -mkdir $(MX_INSTALL_DIR)/bin -mkdir $(MX_INSTALL_DIR)/etc -mkdir $(MX_INSTALL_DIR)/etc/startup -mkdir $(MX_INSTALL_DIR)/include -mkdir $(MX_INSTALL_DIR)/lib -mkdir $(MX_INSTALL_DIR)/log -mkdir $(MX_INSTALL_DIR)/run -mkdir $(MX_INSTALL_DIR)/sbin -mkdir $(MX_INSTALL_DIR)/state install -F $(MX_INSTALL_DIR)/include -m 644 -O mx*.h install -F $(MX_INSTALL_DIR)/lib -m 644 -O $(MX_LIBRARY_NAME) install -F $(MX_INSTALL_DIR)/lib -m 644 -O $(MX_LIBRARY_STATIC_NAME) ( cd $(MX_INSTALL_DIR)/lib ; ln -sf $(MX_LIBRARY_NAME) libMx.so ) touch $(MX_INSTALL_DIR)/etc/motor.dat touch $(MX_INSTALL_DIR)/etc/scan.dat install -F $(MX_INSTALL_DIR)/bin -m 755 -O \ -src ../plotgnu/plotgnu.pl plotgnu.pl install -F $(MX_INSTALL_DIR)/bin -m 755 -O \ -src ../plotgnu/showdata showdata install -F $(MX_INSTALL_DIR)/bin -m 755 -O \ -src ../plotgnu/showplot showplot install -F $(MX_INSTALL_DIR)/bin -m 755 -O \ -src ../plotgnu/plot2ps plot2ps # #--------------------------------------------------- # MOTOR_NAME = motor MOTOR_NAME2 = motor.static $(MOTOR_NAME): $(MOTOR_OBJS) $(MX_LIBRARY_PATH) $(CC) $(CFLAGS) -o $(MOTOR_NAME) $(MOTOR_OBJS) \ $(LIB_DIRS) $(READLINE_LIB_DIRS) \ -lMx $(LIBRARIES) $(READLINE_LIBRARIES) $(CC) $(CFLAGS) -o $(MOTOR_NAME2) $(MOTOR_OBJS) \ $(LIB_DIRS) $(READLINE_LIB_DIRS) \ ../libMx/$(MX_LIBRARY_STATIC_NAME) \ $(LIBRARIES) $(READLINE_LIBRARIES) motor_install: install -F $(MX_INSTALL_DIR)/bin -m 755 -O $(MOTOR_NAME) install -F $(MX_INSTALL_DIR)/bin -m 755 -O $(MOTOR_NAME2) install -F $(MX_INSTALL_DIR)/bin -m 755 -O \ -src ../scripts/motor_xterm motor_xterm # #--------------------------------------------------- # SERVER_NAME = mxserver $(SERVER_NAME): $(SERVER_OBJS) $(MX_LIBRARY_PATH) $(CC) $(CFLAGS) -o $(SERVER_NAME) $(SERVER_OBJS) \ $(LIB_DIRS) -lMx $(LIBRARIES) server_install: install -F $(MX_INSTALL_DIR)/sbin -m 755 -O $(SERVER_NAME) install -F $(MX_INSTALL_DIR)/sbin -m 755 -O \ -src ../scripts/startmxserver startmxserver install -F $(MX_INSTALL_DIR)/sbin -m 755 -O -src ../scripts/mx mx touch $(MX_INSTALL_DIR)/etc/mxserver.dat touch $(MX_INSTALL_DIR)/etc/mxserver.acl # #--------------------------------------------------- # UPDATE_NAME = mxupdate $(UPDATE_NAME): $(UPDATE_OBJS) $(MX_LIBRARY_PATH) $(CC) $(CFLAGS) -o $(UPDATE_NAME) $(UPDATE_OBJS) \ $(LIB_DIRS) -lMx $(LIBRARIES) update_install: install -F $(MX_INSTALL_DIR)/sbin -m 755 -O $(UPDATE_NAME) install -F $(MX_INSTALL_DIR)/sbin -m 755 -O \ -src ../scripts/startmxupdate startmxupdate touch $(MX_INSTALL_DIR)/etc/mxupdate.dat # #--------------------------------------------------- # MXDRIVERINFO_NAME = mxdriverinfo $(MXDRIVERINFO_NAME): $(MXDRIVERINFO_OBJS) $(MX_LIBRARY_PATH) $(CC) $(CFLAGS) -o $(MXDRIVERINFO_NAME) \ $(MXDRIVERINFO_OBJS) $(LIB_DIRS) -lMx $(LIBRARIES) MXSERIAL_NAME = mxserial $(MXSERIAL_NAME): mxserial.o $(MX_LIBRARY_PATH) $(CC) $(CFLAGS) -o $(MXSERIAL_NAME) mxserial.o \ $(LIB_DIRS) -lMx $(LIBRARIES) mxserial.o: mxserial_fork.c $(CC) $(CFLAGS) -c mxserial_fork.c -o mxserial.o util_install: install -F $(MX_INSTALL_DIR)/bin -m 755 -O $(MXDRIVERINFO_NAME) install -F $(MX_INSTALL_DIR)/bin -m 755 -O $(MXSERIAL_NAME)