summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xcleopatre/application/config_to_header33
-rw-r--r--cleopatre/application/managerd/Makefile12
l---------cleopatre/application/managerd/config_to_header1
-rw-r--r--cleopatre/buildroot/package/managerd/managerd.mk5
-rw-r--r--cleopatre/devkit/tests/managerd/utests/override/inc/managerd_config.h5
5 files changed, 53 insertions, 3 deletions
diff --git a/cleopatre/application/config_to_header b/cleopatre/application/config_to_header
new file mode 100755
index 0000000000..8d8c4ee9f2
--- /dev/null
+++ b/cleopatre/application/config_to_header
@@ -0,0 +1,33 @@
+#! /bin/bash
+
+# Takes a config file and generates the corresponding ".h" header file.
+
+if [ $# -lt 3 ]
+then
+ echo "Usage: $0 input_config_file output_header_file header_guard"
+ exit 1
+fi
+
+# The input config file
+config="$1"
+
+# The path and name of the output header file.
+header="$2"
+
+# The name of the macro to use as a guard for the output header file.
+guard="$3"
+
+echo \
+"#ifndef ${guard}
+#define ${guard}
+" > "${header}"
+
+sed -r \
+ -e "/^#/d" \
+ -e "s/^CONFIG_(.*)=y/#define CONFIG_\1 1/" \
+ -e "/^CONFIG_(.*)=n/d" \
+ -e "s/^CONFIG_(.*)=(.*)/#define CONFIG_\1 \2/" \
+ "${config}" >> "${header}"
+
+echo "
+#endif /* ${guard} */" >> ${header}
diff --git a/cleopatre/application/managerd/Makefile b/cleopatre/application/managerd/Makefile
index a4d9e73126..0b82351676 100644
--- a/cleopatre/application/managerd/Makefile
+++ b/cleopatre/application/managerd/Makefile
@@ -2,6 +2,7 @@ BIN=managerd
OBJPATH=obj
SRCPATH=src
INCPATH=inc
+OBJINCPATH=$(OBJPATH)/inc
ifeq ($(CC_FOR_TARGET),) #direct compile
CC=arm-linux-gcc
@@ -14,7 +15,7 @@ else #compile from buildroot
CC_WITH_CFLAGS=$(CC)
CC_WITHOUT_CFLAGS=$(CC_FOR_TARGET)
endif
-EXTRA_CFLAGS=-I$(INCPATH) -I$(LINUX_DIR)/include -I$(LINUX_DIR)/include/asm-arm/arch-spc300 -I$(LIBMME_DIR)/inc -I$(LIBSPID_DIR)/inc -MMD
+EXTRA_CFLAGS=-I$(INCPATH) -I$(OBJINCPATH) -I$(LINUX_DIR)/include -I$(LINUX_DIR)/include/asm-arm/arch-spc300 -I$(LIBMME_DIR)/inc -I$(LIBSPID_DIR)/inc -MMD
LIBS=-L$(LIBMME_DIR) -L$(LIBSPID_DIR) -lmme -lspid -lpthread
SRCS=$(subst $(SRCPATH)/,,$(wildcard $(SRCPATH)/*.c))
@@ -29,11 +30,17 @@ $(BIN): libspid libmme $(OBJS)
$(OBJPATH)/%.o: $(SRCPATH)/%.c
$(CC_WITH_CFLAGS) $(EXTRA_CFLAGS) -o $@ -c $<
-$(OBJS): | $(OBJPATH)
+$(OBJS): $(OBJINCPATH)/managerd_config.h | $(OBJPATH)
$(OBJPATH):
mkdir $(OBJPATH)
+$(OBJINCPATH): | $(OBJPATH)
+ mkdir $@
+
+$(OBJINCPATH)/managerd_config.h: .config | $(OBJINCPATH)
+ ./config_to_header $< $@ MANAGERD_CONFIG_H
+
libspid:
$(MAKE) -C $(LIBSPID_DIR) libspid.so
@@ -47,4 +54,5 @@ libmme:
clean:
rm -f $(OBJS) $(DEPS) $(BIN)
+ rm -rf $(OBJINCPATH)
rmdir $(OBJPATH)
diff --git a/cleopatre/application/managerd/config_to_header b/cleopatre/application/managerd/config_to_header
new file mode 120000
index 0000000000..e29efd024d
--- /dev/null
+++ b/cleopatre/application/managerd/config_to_header
@@ -0,0 +1 @@
+../config_to_header \ No newline at end of file
diff --git a/cleopatre/buildroot/package/managerd/managerd.mk b/cleopatre/buildroot/package/managerd/managerd.mk
index 56451db401..59a53f158e 100644
--- a/cleopatre/buildroot/package/managerd/managerd.mk
+++ b/cleopatre/buildroot/package/managerd/managerd.mk
@@ -22,6 +22,8 @@
# USA
#
+BUILDROOT_CONFIG_FILE:=$(BASE_DIR)/.config
+
MANAGERD_VERSION:=0.0.1
MANAGERD_SITE:=$(BASE_DIR)/../application/managerd
MANAGERD_NAME:=managerd-$(MANAGERD_VERSION)
@@ -33,7 +35,8 @@ $(MANAGERD_DIR)/.unpacked:
ln -s $(MANAGERD_SITE) $(MANAGERD_DIR)
touch $(MANAGERD_DIR)/.unpacked
-$(MANAGERD_DIR)/.configured: $(MANAGERD_DIR)/.unpacked
+$(MANAGERD_DIR)/.configured: $(MANAGERD_DIR)/.unpacked $(BUILDROOT_CONFIG_FILE)
+ > $(MANAGERD_DIR)/.config
touch $(MANAGERD_DIR)/.configured
$(MANAGERD_DIR)/managerd: $(MANAGERD_DIR)/.configured
diff --git a/cleopatre/devkit/tests/managerd/utests/override/inc/managerd_config.h b/cleopatre/devkit/tests/managerd/utests/override/inc/managerd_config.h
new file mode 100644
index 0000000000..403d72f92f
--- /dev/null
+++ b/cleopatre/devkit/tests/managerd/utests/override/inc/managerd_config.h
@@ -0,0 +1,5 @@
+#ifndef MANAGERD_CONFIG_H
+#define MANAGERD_CONFIG_H
+
+
+#endif /* MANAGERD_CONFIG_H */