Implement a config.h to move defines off the compile line and reduce builds

This commit is contained in:
Douglas Clowes
2013-08-01 13:02:13 +10:00
parent 69925baaf6
commit df7afb367a
3 changed files with 33 additions and 16 deletions

View File

@@ -23,7 +23,7 @@ PSI_LIBS = \
$(LIB_TCL8) $(LIB_HDF5) -lpthread \
-ldl -lz -lm -lc $(LIB_MXML) $(LIB_JSON)
PSI_CFLAGS += -MMD
PSI_CFLAGS += -DSITE_ANSTO=1
PSI_CFLAGS += -DSITE_ANSTO
../%.o : ../%.c
cd ..; $(CC) -c $(PSI_CFLAGS) $*.c -o $*.o
@@ -104,26 +104,12 @@ ifeq (,$(LIB_HTTP))
$(warning LIB_HTTP not found)
endif
SICS_SITE = $(shell bash extract_version.sh SITE)
SICS_VERSION = $(shell bash extract_version.sh VERSION)
SICS_REVISION = $(shell bash extract_version.sh REVISION)
$(info Site text is "${SICS_SITE}")
$(info Version text is "${SICS_VERSION}")
$(info Revision text is "${SICS_REVISION}")
ifneq (,$(wildcard site_ansto.o))
$(info Removing site_ansto.o to force recompile)
$(shell rm -f site_ansto.o)
endif
#
DEBUGFLAGS = -Wall -Wextra -Wno-unused -Wno-comment -Wno-switch
CFLAGS = -g -std=gnu99
CFLAGS += $(INCFLAGS)
CFLAGS += $(DEBUGFLAGS)
CFLAGS += -MMD
CFLAGS += -DSICS_SITE='"${SICS_SITE}"'
CFLAGS += -DSICS_VERSION='"${SICS_VERSION}"'
CFLAGS += -DSICS_REVISION='"${SICS_REVISION}"'
SRC = ./../..
SITENAME = _ansto
@@ -177,9 +163,15 @@ OBJ= site_ansto.o anstoutil.o\
beamstopaction.o action.o \
tclClock.o tclDate.o tclUnixTime.o
all: ../matrix/libmatrix.a $(COREOBJ:%=../%) $(EXTRA:%=../%) libansto.a libhardsup
all: config ../matrix/libmatrix.a $(COREOBJ:%=../%) $(EXTRA:%=../%) libansto.a libhardsup
$(CC) -g -o SICServer $(COREOBJ:%=../%) $(EXTRA:%=../%) $(SUBLIBS) $(PSI_SLIBS:%=../%) $(PSI_LIBS) $(GHTTP_LIBS)
config:
@bash make_config.sh
xref: all
python xref.py $(COREOBJ:%=../%) $(EXTRA:%=../%) $(SUBLIBS) $(PSI_SLIBS:%=../%) $(PSI_LIBS) $(GHTTP_LIBS)
#TODO Add targets for other instruments
echidna: all
make -C instrument/hrpd

24
site_ansto/make_config.sh Executable file
View File

@@ -0,0 +1,24 @@
#!/bin/bash
#
# Write a new config.h, but only if changed
#
rm -f config_new.h
SICS_SITE=$(bash extract_version.sh SITE)
SICS_VERSION=$(bash extract_version.sh VERSION)
SICS_REVISION=$(bash extract_version.sh REVISION)
echo "#define SICS_SITE \"$SICS_SITE\"" >> config_new.h
echo "#define SICS_VERSION \"$SICS_VERSION\"" >> config_new.h
echo "#define SICS_REVISION \"$SICS_REVISION\"" >> config_new.h
if [[ -f /usr/include/valgrind/memcheck.h ]]
then
echo "#define SICS_VALGRIND" >> config_new.h
fi
delta=$(diff -q config.h config_new.h 2>> /dev/null)
if [[ $? == 0 ]]
then
echo "config not changed"
rm -f config_new.h
else
echo "config updated"
mv -f --backup config_new.h config.h
fi

View File

@@ -11,6 +11,7 @@
$Name: not supported by cvs2svn $
$Revision: 1.23.2.5 $
-----------------------------------------------------------------------*/
#include "config.h"
#include <stdlib.h>
#include <assert.h>
#include <glob.h>