summaryrefslogtreecommitdiff
path: root/cleopatre/application/spidgoahead/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'cleopatre/application/spidgoahead/Makefile')
-rw-r--r--cleopatre/application/spidgoahead/Makefile98
1 files changed, 98 insertions, 0 deletions
diff --git a/cleopatre/application/spidgoahead/Makefile b/cleopatre/application/spidgoahead/Makefile
new file mode 100644
index 0000000000..23663400bc
--- /dev/null
+++ b/cleopatre/application/spidgoahead/Makefile
@@ -0,0 +1,98 @@
+TARGET := .compiled
+TARGET_DEPS := httpd web.tar
+OBJPATH := obj
+INCPATH := .
+SRCPATH := .
+SUBMOD := LINUX
+
+CLEO_DIR := ../..
+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 ($(SSL_SUPPORT),y)
+ifeq ($(STAGING_DIR),)
+$(error STAGING_DIR is not set by buildroot.)
+endif
+
+SSL_INC := -I$(STAGING_DIR)/usr/include/openssl
+SSL_LIB := $(STAGING_DIR)/usr/lib/libssl.a $(STAGING_DIR)/usr/lib/libcrypto.a
+SSL_SW := -DWEBS_SSL_SUPPORT -DOPENSSL
+else
+SRC2AVOID := websSSL.c
+endif
+SRC2AVOID := $(SRC2AVOID) webcomp.c
+
+
+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)
+else #compile from buildroot
+CC_WITH_CFLAGS=$(CC)
+CC_WITHOUT_CFLAGS=$(CC_FOR_TARGET)
+endif
+
+RESPONSE_FILE := extra_flags
+INCLUDES := -I$(INCPATH) \
+ -I$(LINUX_DIR)/include/asm-arm/arch-spc300 \
+ -I$(CLEO_DIR)/include \
+ $(SSL_INC) \
+ $(shell $(LIBSPID_DIR)/libspid-config --I_opts)
+
+EXTRA_CFLAGS := $(INCLUDES) -MMD -Wall \
+ @$(CLEO_DIR)/$(RESPONSE_FILE) \
+ -DWEBS -DUEMF -DOS="LINUX" -DLINUX \
+ -DUSER_MANAGEMENT_SUPPORT \
+ $(SSL_SW)
+
+LIBS := $(SSL_LIB) \
+ $(shell $(LIBSPID_DIR)/libspid-config --L_opts) \
+ $(shell $(LIBSPID_DIR)/libspid-config --libs)
+
+ALL_SRCS := $(wildcard $(SUBMOD)/*.c) $(wildcard *.c)
+SRCS := $(filter-out $(SRC2AVOID),$(ALL_SRCS))
+OBJS := $(addprefix $(OBJPATH)/,$(SRCS:.c=.o))
+DEPS := $(patsubst %o,%d,$(OBJS))
+
+all: $(TARGET)
+
+$(TARGET): $(TARGET_DEPS)
+ @touch $@
+
+httpd: $(OBJS) $(LIBSPID_SO_BIN) $(LIBMME_SO_BIN) $(SSL_LIB)
+ $(CC_WITHOUT_CFLAGS) -o $@ $(OBJS) $(LIBS)
+
+#TODO: 'httpd' dependency is a patch. Should be redo.
+web.tar: httpd
+ tar -cf $@ web
+
+$(OBJPATH)/%.o: %.c
+ $(CC_WITH_CFLAGS) $(EXTRA_CFLAGS) -o $@ -c $<
+
+$(OBJPATH/$(SUBMOD))/%.o: $(SUBMOD)/%.c
+ $(CC_WITH_CFLAGS) $(EXTRA_CFLAGS) -o $@ -c $<
+
+$(OBJS): | $(OBJPATH)
+
+$(OBJPATH):
+ mkdir -p $(OBJPATH)/$(SUBMOD)
+
+$(LIBSPID_SO_BIN) $(LIBMME_SO_BIN):
+ $(error libspid or libmme output files are not found)
+
+$(SSL_LIB):
+ $(error openssl output files are not found)
+
+-include $(DEPS)
+
+.PHONY: all clean
+
+clean:
+ rm -f $(TARGET) $(TARGET_DEPS)
+ rm -f $(OBJS) $(DEPS)
+ rmdir -p $(OBJPATH)/$(SUBMOD)