support for pushing a file larger than 2GB on 32 bit system
[framework/system/sdbd.git] / Makefile
1 #
2 #
3 # Makefile for sdb
4 #
5
6 #
7 HOST_OS := $(shell uname -s | tr A-Z a-z)
8
9 # sdb host tool
10 # =========================================================
11
12 # Default to a virtual (sockets) usb interface
13 USB_SRCS :=
14 EXTRA_SRCS :=
15
16 ifeq ($(HOST_OS),linux)
17         USB_SRCS := usb_linux.c
18         EXTRA_SRCS := get_my_path_linux.c
19         LOCAL_LDLIBS += -lrt -lncurses -lpthread
20 endif
21
22 ifeq ($(HOST_OS),darwin)
23         USB_SRCS := usb_osx.c
24         EXTRA_SRCS := get_my_path_darwin.c
25         LOCAL_LDLIBS += -lpthread -framework CoreFoundation -framework IOKit -framework Carbon
26         SDB_EXTRA_CFLAGS := -mmacosx-version-min=10.4
27 endif
28
29 ifeq ($(HOST_OS),freebsd)
30         USB_SRCS := usb_libusb.c
31         EXTRA_SRCS := get_my_path_freebsd.c
32         LOCAL_LDLIBS += -lpthread -lusb
33 endif
34
35
36
37 SDB_SRC_FILES := \
38         src/sdb.c \
39         src/console.c \
40         src/transport.c \
41         src/transport_local.c \
42         src/transport_usb.c \
43         src/commandline.c \
44         src/sdb_client.c \
45         src/sockets.c \
46         src/services.c \
47         src/file_sync_client.c \
48         src/$(EXTRA_SRCS) \
49         src/$(USB_SRCS) \
50         src/utils.c \
51         src/usb_vendors.c \
52         src/fdevent.c \
53         src/socket_inaddr_any_server.c \
54         src/socket_local_client.c \
55         src/socket_local_server.c \
56         src/socket_loopback_client.c \
57         src/socket_loopback_server.c \
58         src/socket_network_client.c
59
60 SDB_CFLAGS := -O2 -g -DSDB_HOST=1 -DSDB_HOST_ON_TARGET=1 -Wall -Wno-unused-parameter
61 SDB_CFLAGS += -D_XOPEN_SOURCE -D_GNU_SOURCE
62 SDB_CFLAGS += -DHAVE_FORKEXEC -DHAVE_TERMIO_H -DHAVE_SYMLINKS
63 SDB_LFLAGS := $(LOCAL_LDLIBS)
64
65 SDBD_SRC_FILES := \
66         src/sdb.c \
67         src/fdevent.c \
68         src/transport.c \
69         src/transport_local.c \
70         src/transport_usb.c \
71         src/sockets.c \
72         src/services.c \
73         src/file_sync_service.c \
74         src/usb_linux_client.c \
75         src/utils.c \
76         src/socket_inaddr_any_server.c \
77         src/socket_local_client.c \
78         src/socket_local_server.c \
79         src/socket_loopback_client.c \
80         src/socket_loopback_server.c \
81         src/socket_network_client.c \
82         src/properties.c \
83         src/sdktools.c \
84         src/strutils.c \
85         src/libsmack.c \
86         src/init.c \
87         src/fileutils.c
88
89 SDBD_CFLAGS := -O2 -g -DSDB_HOST=0 -Wall -Wno-unused-parameter
90 SDBD_CFLAGS += -D_XOPEN_SOURCE -D_GNU_SOURCE
91 SDBD_CFLAGS += -DHAVE_FORKEXEC -fPIE -D_DROP_PRIVILEGE -D_FILE_OFFSET_BITS=64
92
93 IFLAGS := -Iinclude -Isrc
94 OBJDIR := bin
95 INSTALLDIR := usr/sbin
96 INITSCRIPTDIR := etc/init.d
97 RCSCRIPTDIR := etc/rc.d/rc3.d
98 LAUNCH_SCRIPT := sdk_launch
99
100 UNAME := $(shell uname -sm)
101 ifneq (,$(findstring 86,$(UNAME)))
102         HOST_ARCH := x86
103 endif
104
105 TARGET_ARCH = $(HOST_ARCH)
106 ifeq ($(TARGET_ARCH),)
107         TARGET_ARCH := arm
108 endif
109
110 ifeq ($(TARGET_ARCH),arm)
111         MODULE := sdbd
112         SDBD_CFLAGS += -DANDROID_GADGET=1
113 else
114 ifeq ($(TARGET_HOST),true)
115         MODULE := sdb
116 else
117         MODULE := sdbd
118 endif
119 endif
120
121 all : $(MODULE)
122
123 sdb : $(SDB_SRC_FILES)
124         mkdir -p $(OBJDIR)
125         $(CC) -pthread -o $(OBJDIR)/$(MODULE) $(SDB_CFLAGS) $(SDB_EXTRA_CFLAGS) $(SDB_LFLAGS) $(IFLAGS) $(SDB_SRC_FILES)
126
127 sdbd : $(SDBD_SRC_FILES)
128         mkdir -p $(OBJDIR)
129         $(CC) -pthread -o $(OBJDIR)/$(MODULE) $(SDBD_CFLAGS) $(IFLAGS) $(SDBD_SRC_FILES)
130
131 install :
132         mkdir -p $(DESTDIR)/$(INSTALLDIR)
133         install $(OBJDIR)/$(MODULE) $(DESTDIR)/$(INSTALLDIR)/$(MODULE)
134         install $(LAUNCH_SCRIPT) $(DESTDIR)/$(INSTALLDIR)/$(LAUNCH_SCRIPT)
135 ifeq ($(MODULE),sdbd)
136         mkdir -p $(DESTDIR)/$(INITSCRIPTDIR)
137         install script/sdbd $(DESTDIR)/$(INITSCRIPTDIR)/sdbd
138 endif
139 ifeq ($(TARGET_ARCH),x86)
140         mkdir -p $(DESTDIR)/$(RCSCRIPTDIR)
141         install script/S06sdbd $(DESTDIR)/$(RCSCRIPTDIR)/S06sdbd
142 endif
143
144 clean :
145         rm -rf $(OBJDIR)/*