summaryrefslogtreecommitdiff
path: root/cleopatre/application/spidgoahead/Makefile
blob: 23663400bcec1f49f03dc4df93f4c23637b97dcb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
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)