pndnotifyd logging was already available (just drop the -d on command line, and redir...
[pandora-libraries.git] / Makefile
1
2 #
3 # libpnd Makefile
4 #
5
6 # tools
7 CC = ${CROSSCOMPILE}gcc
8 CXX = ${CROSSCOMPILE}g++
9 AR = ${CROSSCOMPILE}ar
10 RANLIB = ${CROSSCOMPILE}ranlib
11 RM = rm
12
13 # environment
14 VPATH = lib test apps
15 CFLAG_SO = -fPIC #-fPIC not always needed, but good to have
16 CFLAGS = -Wall -I./include -g ${CFLAG_SO}
17 CXXFLAGS = -Wall -I./include -g ${CFLAG_SO}
18
19 # code
20 LIB = libpnd.a 
21 SOLIB = libpnd.so.1         # canonicle name
22 SOLIB1 = libpnd.so.1.0.1    # versioned name
23 XMLOBJ = lib/tinyxml/tinystr.o lib/tinyxml/tinyxml.o lib/tinyxml/tinyxmlerror.o lib/tinyxml/tinyxmlparser.o
24 ALLOBJ = pnd_conf.o pnd_container.o pnd_discovery.o pnd_pxml.o pnd_notify.o pnd_locate.o pnd_tinyxml.o pnd_pndfiles.o pnd_apps.o pnd_utility.o pnd_desktop.o pnd_io_gpio.o pnd_logger.o
25
26 all: ${SOLIB} ${LIB} conftest discotest notifytest pndnotifyd rawpxmltest pndvalidator loggertest pnd_run pndevmapperd pnd_info
27
28 clean:
29         ${RM} -f ${ALLOBJ} ${XMLOBJ} ${LIB} ${SOLIB1} locatetest.o bin/locatetest conftest.o bin/conftest discotest.o bin/discotest loggertest.o bin/loggertest bin/notifytest notifytest.o bin/rawpxmltest rawpxmltest.o bin/pnd_run pnd_run.o pnd_info.o bin/pnd_info bin/pndevmapperd pndevmapperd.o bin/pndnotifyd pndnotifyd.o ${SOLIB} testdata/dotdesktop/*.desktop testdata/menu/*.desktop testdata/apps/*.pnd testdata/dotdesktop/*.png deployment/usr/lib/libpnd* deployment/usr/bin/pndnotifyd deployment/usr/bin/pnd_run deployment/usr/bin/pnd_info deployment/usr/pandora/scripts/* deployment/etc/sudoers deployment/etc/init.d/pndnotifyd bin/pndvalidator pndvalidator.o deployment/usr/bin/pndevmapperd testdata/menuicons/*
30         ${RM} -rf deployment/media
31         find . -name "*~*" -exec rm {} \; -print
32
33 # component targets
34 #
35
36 libpnd.a:       ${ALLOBJ} ${XMLOBJ}
37         ${AR} r ${LIB} ${ALLOBJ} ${XMLOBJ}
38         ${RANLIB} ${LIB}
39
40 libpnd.so.1:    ${ALLOBJ} ${XMLOBJ}
41         ${CC} -shared -Wl,-soname,${SOLIB} -o ${SOLIB1} ${ALLOBJ} ${XMLOBJ}
42         ln -f -s ${SOLIB1} ${SOLIB}
43
44 ${SOLIB1}:      ${ALLOBJ} ${XMLOBJ}
45         ${CC} -shared -Wl,-soname,${SOLIB} -o ${SOLIB1} ${ALLOBJ} ${XMLOBJ}
46         ln -f -s ${SOLIB1} ${SOLIB}
47
48 pndnotifyd:     pndnotifyd.o ${SOLIB1}
49         ${CC} -lstdc++ -o bin/pndnotifyd pndnotifyd.o ${SOLIB1}
50
51 pndvalidator:   pndvalidator.o ${SOLIB1}
52         ${CC} -lstdc++ -o bin/pndvalidator pndvalidator.o ${SOLIB1}
53
54 pnd_run:        pnd_run.o ${SOLIB1}
55         ${CC} -lstdc++ -o bin/pnd_run pnd_run.o ${SOLIB1}
56
57 pnd_info:       pnd_info.o ${SOLIB1}
58         ${CC} -lstdc++ -o bin/pnd_info pnd_info.o ${SOLIB1}
59
60 pndevmapperd:   pndevmapperd.o ${SOLIB1}
61         ${CC} -lstdc++ -o bin/pndevmapperd pndevmapperd.o ${SOLIB1}
62
63 # deployment and assembly components
64 #
65
66 pnd:
67         # build x86_ls with icon
68         cd testdata/pndsample; ../scripts/pnd_make.sh -p x86_ls.pnd -d x86_ls -i x86_ls/zeldaicon.png -x x86_ls/PXML.xml
69         # build x86_echo with no icon
70         cd testdata/pndsample; ../scripts/pnd_make.sh -p x86_echo.pnd -d x86_echo -x x86_echo/PXML.xml
71
72 deploy: 
73         # populate deployment directory for copying into image bakes
74         # make dirs
75         mkdir -p deployment/etc/pandora/conf
76         mkdir -p deployment/usr/lib
77         mkdir -p deployment/usr/bin
78         mkdir -p deployment/usr/pandora/apps
79         mkdir -p deployment/usr/pandora/scripts
80         mkdir -p deployment/etc/init.d/
81         # premake the directories that SD's mount onto; makes pndnotifyd life easier
82         mkdir -p deployment/media/mmcblk0p1
83         mkdir -p deployment/media/mmcblk1p1
84         # copy in goodies
85         cp libpnd* deployment/usr/lib
86         cp bin/pndnotifyd deployment/usr/bin
87         cp bin/pnd_run deployment/usr/bin
88         cp testdata/scripts/* deployment/usr/pandora/scripts
89         cp bin/pndevmapperd deployment/usr/bin
90         # copy in freebee .pnd apps to /usr/pandora/apps
91         # add pndnotify to etc/rc/startup-whatever
92         cp testdata/sh/pndnotifyd deployment/etc/init.d/pndnotifyd
93         cp testdata/sh/sudoers deployment/etc/sudoers
94
95 # test tool targets
96 #
97
98 conftest:       conftest.o ${LIB}
99         ${CC} -lstdc++ -o bin/conftest conftest.o libpnd.a
100
101 discotest:      discotest.o ${LIB}
102         ${CC} -lstdc++ -o bin/discotest discotest.o libpnd.a
103
104 notifytest:     notifytest.o ${LIB}
105         ${CC} -lstdc++ -o bin/notifytest notifytest.o libpnd.a
106
107 locatetest:     locatetest.o ${SOLIB1}
108         ${CC} -lstdc++ -o bin/locatetest locatetest.o ${SOLIB1}
109
110 rawpxmltest:    rawpxmltest.o ${LIB}
111         ${CC} -lstdc++ -o bin/rawpxmltest rawpxmltest.o ${LIB}
112
113 loggertest:     loggertest.o ${LIB}
114         ${CC} -lstdc++ -o bin/loggertest loggertest.o libpnd.a