# # Name: Makehead.hpux-gcc # # Purpose: This file is used to customize operating system and installation # dependent features of the MX makefiles. This version is customized # for HP/UX using GCC. # # 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 = -mlp64 # INCLUDES = $(MX_INCLUDES) # LIB_DIRS = -L$(MX_LIB_DIR) LIBRARIES = -lrt -lm -lcl -lrpcsvc # # 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$(HOME)/local/lib #READLINE_LIBRARIES = -lreadline -lcurses # #======================================================================== # # Generally, you should not have to modify anything after this point. # # # gcc specific flags # GCCFLAGS = -Wall -Werror \ -Wstrict-prototypes \ -Wpointer-arith \ -Wcast-align \ -Wcast-qual \ -Wshadow \ -Wmissing-prototypes \ -Wnested-externs \ -Winline # # HP 9000 with GCC 3.4 on HP-UX # CC = gcc CFLAGS = -g -fPIC $(GCCFLAGS) $(INCLUDES) -DOS_HPUX \ -D_XOPEN_SOURCE_EXTENDED=1 $(EXTRA_FLAGS) \ -DDEBUG $(USE_64_BITS) # Special cases for individual files. CFLAGS_MX_VERS = -DOS_HPUX -DMX_MAJOR_VERSION=$(MX_MAJOR_VERSION) \ -DMX_MINOR_VERSION=$(MX_MINOR_VERSION) \ -DMX_UPDATE_VERSION=$(MX_UPDATE_VERSION) \ -DMX_BRANCH_LABEL="\"$(MX_BRANCH_LABEL)\"" CFLAGS_MAKEDEPEND = $(INCLUDES) -DOS_HPUX $(EXTRA_FLAGS) -DDEBUG \ $(READLINE_INCLUDES) COMPILE = $(CC) -c DEFINE = -D MAKEDEPEND = gcc -MM $(CFLAGS_MAKEDEPEND) *.c > Makefile.depend MAKEDEPEND_CLEAN = rm Makefile.depend # #--------------------------------------------------- # # Declare bundled programs to be MX "applications". # One of the consequences of this is that mx_poison.h # is applied to them. # APP_FLAGS=$(DEFINE)__MX_APP__ # #--------------------------------------------------- # MX_LIB_SRCS = mx_driver.c $(MX_CORE_SRCS) $(MX_DRIVER_SRCS) # # See libMx/Makehead.irix for why this is here. # MX_LIB_OBJS = $(MX_LIB_SRCS:.c=.$(OBJ)) \ ../tools/strlcpy.o ../tools/strlcat.o MOTOR_OBJS = $(MOTOR_SRCS:.c=.$(OBJ)) SERVER_OBJS = $(SERVER_SRCS:.c=.$(OBJ)) AUTOSAVE_OBJS = $(AUTOSAVE_SRCS:.c=.$(OBJ)) MXDRIVERINFO_OBJS = $(MXDRIVERINFO_SRCS:.c=.$(OBJ)) MXMONITOR_OBJS = $(MXMONITOR_SRCS:.c=.$(OBJ)) # #--------------------------------------------------- # RM = rm -f MAKE = make TOUCH = touch -a 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_SLNAME = libMx.sl MX_LIBRARY_NAME = libMx.$(MX_MAJOR_VERSION) MX_LIBRARY_STATIC_NAME = libMx.a MX_LIBRARY_DELETE = rm $(MX_LIBRARY_NAME) $(MX_SLNAME) $(MX_LIBRARY_STATIC_NAME) $(MX_LIBRARY_NAME): $(MX_LIB_OBJS) -$(MX_LIBRARY_DELETE) gcc $(USE_64_BITS) -shared -o $(MX_LIBRARY_NAME)\ $(LIB_DIRS) $(MX_LIB_OBJS) $(LIBRARIES) ln -sf $(MX_LIBRARY_NAME) $(MX_SLNAME) ar r $(MX_LIBRARY_STATIC_NAME) $(MX_LIB_OBJS) 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 cp mx*.h $(MX_INSTALL_DIR)/include cp $(MX_LIBRARY_NAME) $(MX_INSTALL_DIR)/lib cp $(MX_LIBRARY_STATIC_NAME) $(MX_INSTALL_DIR)/lib -( cd $(MX_INSTALL_DIR)/lib ; rm $(MX_SLNAME) ) ( cd $(MX_INSTALL_DIR)/lib ; ln -sf $(MX_LIBRARY_NAME) $(MX_SLNAME) ) touch $(MX_INSTALL_DIR)/etc/mxmotor.dat touch $(MX_INSTALL_DIR)/etc/mxscan.dat cp ../plotgnu/plotgnu.pl $(MX_INSTALL_DIR)/bin cp ../plotgnu/showdata $(MX_INSTALL_DIR)/bin cp ../plotgnu/showplot $(MX_INSTALL_DIR)/bin cp ../plotgnu/plot2ps $(MX_INSTALL_DIR)/bin cp ../scripts/mxsetup.sh $(MX_INSTALL_DIR)/bin cp ../tools/mx_config $(MX_INSTALL_DIR)/bin chmod 755 $(MX_INSTALL_DIR)/bin/* mx_list_head.$(OBJ): Makefile.version mx_list_head.c mx_version.h $(COMPILE) $(CFLAGS) -DMX_CFLAGS="${CFLAGS}" mx_list_head.c # #--------------------------------------------------- # MOTOR_NAME = mxmotor MOTOR_NAME2 = mxmotor.static $(MOTOR_NAME): $(MOTOR_OBJS) $(MX_LIBRARY_PATH) $(CC) $(CFLAGS) -o $(MOTOR_NAME) $(MOTOR_OBJS) \ $(LIB_DIRS) $(READLINE_LIB_DIRS) \ -lMx $(LIBRARIES) $(READLINE_LIBRARIES) chatr -s +s enable $(MOTOR_NAME) $(CC) $(CFLAGS) -o $(MOTOR_NAME2) $(MOTOR_OBJS) \ $(LIB_DIRS) $(READLINE_LIB_DIRS) \ ../libMx/$(MX_LIBRARY_STATIC_NAME) \ $(LIBRARIES) $(READLINE_LIBRARIES) motor_install: cp $(MOTOR_NAME) $(MX_INSTALL_DIR)/bin cp $(MOTOR_NAME2) $(MX_INSTALL_DIR)/bin chmod 755 $(MX_INSTALL_DIR)/bin/* # #--------------------------------------------------- # SERVER_NAME = mxserver $(SERVER_NAME): $(SERVER_OBJS) $(MX_LIBRARY_PATH) $(CC) $(CFLAGS) -o $(SERVER_NAME) $(SERVER_OBJS) \ $(LIB_DIRS) -lMx $(LIBRARIES) chatr -s +s enable $(SERVER_NAME) server_install: cp $(SERVER_NAME) $(MX_INSTALL_DIR)/sbin cp ../scripts/startmxserver $(MX_INSTALL_DIR)/sbin cp ../scripts/mx $(MX_INSTALL_DIR)/sbin chmod 755 $(MX_INSTALL_DIR)/sbin/* touch $(MX_INSTALL_DIR)/etc/mxserver.dat touch $(MX_INSTALL_DIR)/etc/mxserver.acl # #--------------------------------------------------- # AUTOSAVE_NAME = mxautosave $(AUTOSAVE_NAME): $(AUTOSAVE_OBJS) $(MX_LIBRARY_PATH) $(CC) $(CFLAGS) -o $(AUTOSAVE_NAME) $(AUTOSAVE_OBJS) \ $(LIB_DIRS) -lMx $(LIBRARIES) chatr -s +s enable $(AUTOSAVE_NAME) autosave_install: cp $(AUTOSAVE_NAME) $(MX_INSTALL_DIR)/sbin cp ../scripts/startmxautosave $(MX_INSTALL_DIR)/sbin cp ../scripts/mxsave $(MX_INSTALL_DIR)/bin cp ../scripts/mxrestore $(MX_INSTALL_DIR)/bin chmod 755 $(MX_INSTALL_DIR)/sbin/* chmod 755 $(MX_INSTALL_DIR)/bin/* touch $(MX_INSTALL_DIR)/etc/mxautosave.dat # #--------------------------------------------------- # MXDRIVERINFO_NAME = mxdriverinfo $(MXDRIVERINFO_NAME): $(MXDRIVERINFO_OBJS) $(MX_LIBRARY_PATH) $(CC) $(CFLAGS) -o $(MXDRIVERINFO_NAME) \ $(MXDRIVERINFO_OBJS) $(LIB_DIRS) -lMx $(LIBRARIES) chatr -s +s enable $(MXDRIVERINFO_NAME) #--- MXMONITOR_NAME = mxmonitor $(MXMONITOR_NAME): $(MXMONITOR_OBJS) $(MX_LIBRARY_PATH) $(CC) $(CFLAGS) -o $(MXMONITOR_NAME) \ $(MXMONITOR_OBJS) $(LIB_DIRS) -lMx $(LIBRARIES) chatr -s +s enable $(MXMONITOR_NAME) #--- MXSERIAL_NAME = mxserial $(MXSERIAL_NAME): mxserial.o $(MX_LIBRARY_PATH) $(CC) $(CFLAGS) -o $(MXSERIAL_NAME) mxserial.o \ $(LIB_DIRS) -lMx $(LIBRARIES) chatr -s +s enable $(MXSERIAL_NAME) mxserial.o: mxserial_fork.c $(CC) $(CFLAGS) -D__MX_APP__ -c mxserial_fork.c -o mxserial.o util_install: cp $(MXDRIVERINFO_NAME) $(MX_INSTALL_DIR)/bin cp $(MXMONITOR_NAME) $(MX_INSTALL_DIR)/bin cp $(MXSERIAL_NAME) $(MX_INSTALL_DIR)/bin chmod 755 $(MX_INSTALL_DIR)/bin/*