File: Makefile

package info (click to toggle)
vdr-plugin-games 0.6.3-39
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 576 kB
  • sloc: cpp: 9,884; sh: 180; makefile: 146
file content (96 lines) | stat: -rw-r--r-- 2,671 bytes parent folder | download | duplicates (4)
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
PLUGIN    = games
VERSION   = 0.6.3
GAMES     = minesweeper \
            tictactoe   \
            tetris      \
            snake       \
            tron
OBJS      = launcher.o  \
            display.o   \
            screen.o    \
            bitmap.o    \
            text.o
VDROBJS   = plugin.o
SDLOBJS   = main.o
DEFINES   = -DVERSION=\"$(VERSION)\"
CFLAGS    = -g -pipe -O2 -Wall -Woverloaded-virtual
LFLAGS    = -pthread
VDRDIR    = ../../..
LIBDIR    = ../../lib
DVBDIR    = ../../../../DVB
PACKAGE   = vdr-games-$(VERSION)
ARCHIVES  = $(shell for GAME in $(GAMES); do echo $$GAME/$$GAME.a; done)
SDLGAMES  = $(shell test -f $(VDRDIR)/config.h || echo true )
VDRVER    = $(shell grep 'define VDRVERSION ' $(VDRDIR)/config.h | \
                    awk '{ print $$3 }' | sed -e 's/"//g' )
VDRNUM    = $(shell grep 'define VDRVERSNUM ' $(VDRDIR)/config.h | \
                    awk '{ print $$3 }' | sed -e 's/"//g' )

ifeq "$(SDLGAMES)" "true"

	TARGET    = sdl-games
	OBJS     += $(SDLOBJS)
	CFLAGS   += `sdl-config --cflags`
	LFLAGS   += `sdl-config --libs`
	DEFINES  += -DSDL -DVERBOSE

else

	# The version number of VDR's plugin API (taken from VDR's "config.h"):
	APIVERSION = $(shell sed -ne '/define APIVERSION/ { s/^.*"\(.*\)".*$$/\1/; p }' $(VDRDIR)/config.h)

	# This is required for VDRs older than 1.3.47
	ifeq ($(strip $(APIVERSION)),)
		APIVERSION = $(shell sed -ne '/define VDRVERSION/ { s/^.*"\(.*\)".*$$/\1/; p }' $(VDRDIR)/config.h)
	endif

	-include $(VDRDIR)/Make.config

	TARGET    = libvdr-games.so
	OBJS     += $(VDROBJS)
	CFLAGS   += $(INCLUDES) -I$(VDRDIR)/include
	LFLAGS   += -shared
	DEFINES  += -D_GNU_SOURCE -DVDRVERSNUM=$(VDRNUM)

endif

all:
	@echo
	@echo -n "Building $(TARGET) "
	for GAME in $(GAMES); do cd $$GAME; make all DEFINES="$(DEFINES)" CFLAGS="$(CFLAGS)"; cd -; done
	@rm -f $(TARGET)
	@make $(TARGET)
	@echo " done"
	@echo

libvdr-games.so: $(OBJS)
	g++ $(OBJS) $(LFLAGS) $(ARCHIVES) -o $@
	@cp $@ $(LIBDIR)/$@.$(APIVERSION)

sdl-games: $(OBJS)
	g++ $(OBJS) $(LFLAGS) $(ARCHIVES) -o $@

install: all
	@cp $(LIBDIR)/libvdr-games.so.$(VDRVER) /mnt/vdr/lib/plugins/

tar: clean
	@echo -n "Creating archive ..."
	@cd .. ; cp -a vdr-games games-$(VERSION)
	@cd .. ; for GAME in $(GAMES); do rm -rf games-$(VERSION)/$$GAME/CVS; done
	@cd .. ; rm -rf games-$(VERSION)/CVS
	@cd .. ; tar cfz $(PACKAGE).tar.gz games-$(VERSION)
	@cd .. ; rm -rf games-$(VERSION)
	@echo " done"
	@echo

clean:
	@echo
	@echo -n "Cleaning source tree "
	@for GAME in $(GAMES); do cd $$GAME; make clean; cd -; done
	@rm -f *.o *.a $(TARGET)
	@echo " done"
	@echo

.cpp.o:
	@echo -n "."
	$(COMPILE.cpp) $(DEFINES) $(CFLAGS) -c $< $(OUTPUT_OPTION)