summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cleopatre/application/managerd/Makefile36
-rw-r--r--cleopatre/buildroot/package/managerd/managerd.mk11
2 files changed, 26 insertions, 21 deletions
diff --git a/cleopatre/application/managerd/Makefile b/cleopatre/application/managerd/Makefile
index 856d824a28..366e5fa504 100644
--- a/cleopatre/application/managerd/Makefile
+++ b/cleopatre/application/managerd/Makefile
@@ -5,22 +5,34 @@ INCPATH=inc
OBJINCPATH=$(OBJPATH)/inc
CLEO_DIR = ../..
-RESPONSE_FILE=extra_flags
-CLEO_INC=$(CLEO_DIR)/include
+LINUX_DIR = $(CLEO_DIR)/linux-2.6.25.10-spc300
+LIBSPID_DIR = $(CLEO_DIR)/application/libspid
+LIBMME_DIR = $(CLEO_DIR)/application/libmme
+
+LIBSPID_SO_BIN = $(LIBSPID_DIR)/libspid.so
+LIBMME_SO_BIN = $(LIBMME_DIR)/libmme.so
ifeq ($(CC_FOR_TARGET),) #direct compile
CC=arm-linux-gcc
CC_WITH_CFLAGS=$(CC) -I/opt/spidcom/spc300/usr/include -g -Os
CC_WITHOUT_CFLAGS=$(CC)
-LINUX_DIR=$(CLEO_DIR)/linux-2.6.25.10-spc300
-LIBSPID_DIR=$(CLEO_DIR)/application/libspid
-LIBMME_DIR=$(CLEO_DIR)/application/libmme
else #compile from buildroot
CC_WITH_CFLAGS=$(CC)
CC_WITHOUT_CFLAGS=$(CC_FOR_TARGET)
endif
-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 -I$(CLEO_INC) -MMD @$(CLEO_DIR)/$(RESPONSE_FILE)
-LIBS=-L$(LIBMME_DIR) -L$(LIBSPID_DIR) -lmme -lspid -lpthread
+
+RESPONSE_FILE=extra_flags
+INCLUDES = -I$(INCPATH) -I$(OBJINCPATH) \
+ -I$(LINUX_DIR)/include \
+ -I$(LINUX_DIR)/include/asm-arm/arch-spc300 \
+ -I$(CLEO_DIR)/include \
+ $(shell $(LIBSPID_DIR)/libspid-config --I_opts)
+
+EXTRA_CFLAGS= $(INCLUDES) -MMD -Wall @$(CLEO_DIR)/$(RESPONSE_FILE)
+
+LIBS = -lpthread \
+ $(shell $(LIBSPID_DIR)/libspid-config --L_opts) \
+ $(shell $(LIBSPID_DIR)/libspid-config --libs)
SRCS=$(subst $(SRCPATH)/,,$(wildcard $(SRCPATH)/*.c))
OBJS=$(addprefix $(OBJPATH)/,$(SRCS:.c=.o))
@@ -28,7 +40,7 @@ DEPS=$(patsubst %o,%d,$(OBJS))
all: $(BIN)
-$(BIN): libspid libmme $(OBJS)
+$(BIN): $(OBJS) $(LIBSPID_SO_BIN) $(LIBMME_SO_BIN)
$(CC_WITHOUT_CFLAGS) -o $@ $(OBJS) $(LIBS)
$(OBJPATH)/%.o: $(SRCPATH)/%.c
@@ -42,12 +54,8 @@ $(OBJPATH):
$(OBJINCPATH): | $(OBJPATH)
mkdir $@
-libspid:
- $(MAKE) -C $(LIBSPID_DIR) libspid.so
-
-libmme:
- $(MAKE) -C $(LIBMME_DIR) libmme.so
-
+$(LIBSPID_SO_BIN) $(LIBMME_SO_BIN):
+ $(error libspid or libmme output files are not found)
-include $(DEPS)
diff --git a/cleopatre/buildroot/package/managerd/managerd.mk b/cleopatre/buildroot/package/managerd/managerd.mk
index 111a7b1996..6df210bc43 100644
--- a/cleopatre/buildroot/package/managerd/managerd.mk
+++ b/cleopatre/buildroot/package/managerd/managerd.mk
@@ -41,12 +41,9 @@ $(MANAGERD_DIR)/.configured: $(MANAGERD_DIR)/.unpacked $(BUILDROOT_CONFIG_FILE)
touch $(MANAGERD_DIR)/.configured
$(MANAGERD_DIR)/managerd: $(MANAGERD_LIBSPID_SITE)/libspid.so \
- $(MANAGERD_DIR)/.configured
+ $(MANAGERD_DIR)/.configured FORCE_MANAGERD_MAKE
$(TARGET_CONFIGURE_OPTS) \
- $(MAKE) -C $(MANAGERD_DIR) managerd \
- LINUX_DIR="$(BASE_DIR)/../linux-2.6.25.10-spc300" \
- LIBMME_DIR="$(BASE_DIR)/../application/libmme" \
- LIBSPID_DIR="$(MANAGERD_LIBSPID_SITE)"
+ $(MAKE) -C $(MANAGERD_DIR) managerd
$(TARGET_DIR)/usr/sbin/managerd: $(MANAGERD_DIR)/managerd
mkdir -p $(TARGET_DIR)/usr/sbin
@@ -61,8 +58,8 @@ managerd-clean:
managerd-dirclean:
rm -f $(MANAGERD_DIR)
-# We declare $(MANAGERD_DIR)/managerd rule as PHONY to force compilation
-.PHONY: $(MANAGERD_DIR)/managerd
+# We declare FORCE_MANAGERD_MAKE rule as PHONY to force compilation
+.PHONY: FORCE_MANAGERD_MAKE
#############################################################
#