]> git.tdb.fi Git - ext/subsurface.git/blob - Makefile
A Makefile 'clean' target is quite standard.
[ext/subsurface.git] / Makefile
1 VERSION=1.0
2
3 CC=gcc
4 CFLAGS=-Wall -Wno-pointer-sign -g
5 INSTALL=install
6
7 prefix = $(HOME)
8 DESTDIR = $(prefix)/bin
9 NAME = subsurface
10
11 LIBDIVECOMPUTERDIR = /usr/local
12 LIBDIVECOMPUTERINCLUDES = $(LIBDIVECOMPUTERDIR)/include/libdivecomputer
13 LIBDIVECOMPUTERARCHIVE = $(LIBDIVECOMPUTERDIR)/lib/libdivecomputer.a
14
15 # Libusb-1.0 is only required if libdivecomputer was built with it.
16 # And libdivecomputer is only built with it if libusb-1.0 is
17 # installed. So get libusb if it exists, but don't complain
18 # about it if it doesn't.
19 LIBUSB = $(shell pkg-config --libs libusb-1.0 2> /dev/null)
20
21 LIBXML2 = $(shell xml2-config --libs)
22 LIBGTK = $(shell pkg-config --libs gtk+-2.0 glib-2.0 gconf-2.0)
23 LIBDIVECOMPUTER = $(LIBDIVECOMPUTERARCHIVE) $(LIBUSB)
24
25 LIBS = $(LIBXML2) $(LIBGTK) $(LIBDIVECOMPUTER) -lpthread
26
27 OBJS =  main.o dive.o profile.o info.o equipment.o divelist.o \
28         parse-xml.o save-xml.o libdivecomputer.o print.o uemis.o \
29         gtk-gui.o
30
31 $(NAME): $(OBJS)
32         $(CC) $(LDFLAGS) -o $(NAME) $(OBJS) $(LIBS)
33
34 install: $(NAME)
35         $(INSTALL) -d -m 755 '$(DESTDIR)'
36         $(INSTALL) $(NAME) '$(DESTDIR)'
37
38 parse-xml.o: parse-xml.c dive.h
39         $(CC) $(CFLAGS) `pkg-config --cflags glib-2.0` -c `xml2-config --cflags`  parse-xml.c
40
41 save-xml.o: save-xml.c dive.h
42         $(CC) $(CFLAGS) `pkg-config --cflags glib-2.0` -c save-xml.c
43
44 dive.o: dive.c dive.h
45         $(CC) $(CFLAGS) `pkg-config --cflags glib-2.0` -c dive.c
46
47 main.o: main.c dive.h display.h divelist.h
48         $(CC) $(CFLAGS) `pkg-config --cflags glib-2.0 gconf-2.0` \
49                 -c main.c
50
51 profile.o: profile.c dive.h display.h divelist.h
52         $(CC) $(CFLAGS) `pkg-config --cflags gtk+-2.0 glib-2.0` -c profile.c
53
54 info.o: info.c dive.h display.h display-gtk.h divelist.h
55         $(CC) $(CFLAGS) `pkg-config --cflags gtk+-2.0 glib-2.0` -c info.c
56
57 equipment.o: equipment.c dive.h display.h divelist.h
58         $(CC) $(CFLAGS) `pkg-config --cflags gtk+-2.0 glib-2.0` -c equipment.c
59
60 divelist.o: divelist.c dive.h display.h divelist.h
61         $(CC) $(CFLAGS) `pkg-config --cflags gtk+-2.0 glib-2.0` -c divelist.c
62
63 print.o: print.c dive.h display.h display-gtk.h
64         $(CC) $(CFLAGS) `pkg-config --cflags gtk+-2.0 glib-2.0` -c print.c
65
66 libdivecomputer.o: libdivecomputer.c dive.h display.h display-gtk.h libdivecomputer.h
67         $(CC) $(CFLAGS) `pkg-config --cflags gtk+-2.0 glib-2.0` \
68                         -I$(LIBDIVECOMPUTERINCLUDES) \
69                         -c libdivecomputer.c
70
71 gtk-gui.o: gtk-gui.c dive.h display.h divelist.h display-gtk.h libdivecomputer.h
72         $(CC) $(CFLAGS) `pkg-config --cflags gtk+-2.0 glib-2.0 gconf-2.0` \
73                         -I$(LIBDIVECOMPUTERINCLUDES) \
74                         -DVERSION_STRING='"v$(VERSION)"' \
75                         -c gtk-gui.c
76
77 uemis.o: uemis.c uemis.h
78         $(CC) $(CFLAGS) `pkg-config --cflags gtk+-2.0 glib-2.0` -c uemis.c
79
80 clean:
81         rm -f $(OBJS) *~ $(NAME)