# # Name: Makehead.vxworks # # Purpose: This file is used to customize operating system and installation # dependent features of the MX makefiles. This version is customized # for VxWorks. # export WIND_BASE = /APSshare/vw/vxWorks-$(VW_VERSION) VW_VERSION = 6.9.4 ###VW_VERSION = 6.9 VW_GCC_VERSION = 4.3.3 VW_TARGET_ARCH = ppc VW_TARGET_ARCH_LONG = powerpc #VW_TARGET_ARCH = pentium #VW_TARGET_ARCH_LONG = i586 #---- VW_HOST_BIN = \ $(WIND_BASE)/gnu/$(VW_GCC_VERSION)-vxworks-$(VW_VERSION)/x86-linux2/bin VW_TARGET_INCLUDES = \ -I$(WIND_BASE)/vxworks-$(VW_VERSION)/target/h \ -I$(WIND_BASE)/vxworks-$(VW_VERSION)/target/h/wrn/coreip VW_TARGET_GCC_INCLUDES = \ -I$(WIND_BASE)/gnu/$(VW_GCC_VERSION)-vxworks-$(VW_VERSION)/lib/gcc/$(VW_TARGET_ARCH_LONG)-wrs-vxworks/$(VW_GCC_VERSION)/include VW_TARGET_LIB_DIRS = \ -L$(WIND_BASE)/vxworks-$(VW_VERSION)/target/lib/$(VW_TARGET_ARCH)/PPC32/sfcommon VW_TARGET_LIBRARIES = INSTALL = /usr/bin/install # # Normally, the only other things that end users may have to modify in this # file are the definitions of INCLUDES, LIB_DIRS, and LIBRARIES. # # INCLUDES = $(MX_INCLUDES) LIB_DIRS = -L$(MX_LIB_DIR) LIBRARIES = MX_DRIVER_SRCS += i_vxworks_rs232.c i_vxworks_vme.c # # VxWorks often runs on resource constrained systems, so we define here # a list of MX drivers that only includes the actual drivers we need. # # Note that you must also edit libMx/mx_driver_vxworks.c to match. # MX_DRIVER_VXWORKS_SRCS = i_vxworks_rs232.c i_vxworks_vme.c d_vme_dio.c \ d_soft_ainput.c d_soft_aoutput.c d_soft_dinput.c d_soft_doutput.c \ d_soft_amplifier.c d_soft_mca.c d_soft_mcs.c \ d_soft_motor.c d_soft_scaler.c d_soft_timer.c \ d_doutput_pulser.c \ d_bit.c d_blind_relay.c d_elapsed_time.c d_generic_relay.c \ d_interval_timer.c d_mcs_timer.c v_mathop.c \ i_vme58.c d_vme58.c \ i_vsc16.c d_vsc16_scaler.c d_vsc16_timer.c \ d_sis3801.c d_sis3801_pulser.c \ d_sis3820.c \ # #======================================================================== # # Generally, you should not have to modify anything after this point. # # # gcc specific flags # GCCFLAGS = -Wall -Werror \ -Wpointer-arith \ -Wcast-align \ -Wcast-qual \ -Wmissing-prototypes \ -Wnested-externs \ -Winline \ -msoft-float # # VxWorks with GCC # CC = $(VW_HOST_BIN)/cc$(VW_TARGET_ARCH) LD = $(VW_HOST_BIN)/ld$(VW_TARGET_ARCH) HOST_CC = cc CFLAGS = -g $(GCCFLAGS) $(INCLUDES) -DOS_VXWORKS \ -fno-builtin -nostdinc \ $(VW_TARGET_INCLUDES) \ $(VW_TARGET_GCC_INCLUDES) \ $(EXTRA_FLAGS) -DDEBUG # Special cases for individual files. CFLAGS_MX_VERS = -DOS_VXWORKS -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 = $(CFLAGS) $(READLINE_INCLUDES) COMPILE = $(CC) $(CFLAGS) -c DEFINE = -D MAKEDEPEND = $(CC) -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_vxworks.c $(MX_CORE_SRCS) $(MX_DRIVER_VXWORKS_SRCS) # # See libMx/Makehead.irix for why this is here. # MX_LIB_OBJS = $(MX_LIB_SRCS:.c=.o) MOTOR_OBJS = $(MOTOR_SRCS:.c=.o) SERVER_OBJS = $(SERVER_SRCS:.c=.o) #---- MX_LIB_OBJS += ../tools/strlcpy.o ../tools/strlcat.o MX_LIB_OBJS += ../tools/strptime.o ../tools/xdr_hyper.o # #--------------------------------------------------- # RM = rm -f MAKE = make TOUCH = touch -a OBJ = o EXEOUT = -o DOTEXE = .o # #--------------------------------------------------- # 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_LIBRARY_NAME = libMx.o MX_LIBRARY_STATIC_NAME = $(MX_LIBRARY_NAME) MX_LIBRARY_DELETE = rm $(MX_LIBRARY_NAME) $(MX_LIBRARY_NAME): $(MX_LIB_OBJS) -$(MX_LIBRARY_DELETE) $(LD) -o $(MX_LIBRARY_NAME) \ -r $(LIB_DIRS) $(MX_LIB_OBJS) $(LIBRARIES) \ $(VW_TARGET_LIB_DIRS) $(VW_TARGET_LIBRARIES) 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) -c -m 644 mx*.h $(MX_INSTALL_DIR)/include $(INSTALL) -c -m 644 $(MX_LIBRARY_NAME) $(MX_INSTALL_DIR)/lib touch $(MX_INSTALL_DIR)/etc/mxmotor.dat touch $(MX_INSTALL_DIR)/etc/mxscan.dat 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_shell.o $(MOTOR_NAME): mvxworks.o $(MOTOR_OBJS) $(MX_LIBRARY_PATH) $(LD) -o $(MOTOR_NAME) -r mvxworks.o $(MOTOR_OBJS) mvxworks.o: mvxworks.c $(COMPILE) $(CFLAGS) mvxworks.c motor_install: $(INSTALL) -c -m 755 $(MOTOR_NAME) $(MX_INSTALL_DIR)/bin # #--------------------------------------------------- # SERVER_NAME = mxserver.o $(SERVER_NAME): ms_vxworks.o $(SERVER_OBJS) $(MX_LIBRARY_PATH) $(LD) -o $(SERVER_NAME) -r ms_vxworks.o $(SERVER_OBJS) ms_vxworks.o: ms_vxworks.c $(COMPILE) $(CFLAGS) ms_vxworks.c server_install: $(INSTALL) -c -m 755 $(SERVER_NAME) $(MX_INSTALL_DIR)/sbin touch $(MX_INSTALL_DIR)/etc/mxserver.dat touch $(MX_INSTALL_DIR)/etc/mxserver.acl # #--------------------------------------------------- # autosave_install: util_install: