File: Makefile

package info (click to toggle)
libhdhomerun 20100213-2
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 448 kB
  • ctags: 519
  • sloc: ansic: 4,812; makefile: 112
file content (66 lines) | stat: -rwxr-xr-x 1,662 bytes parent folder | download
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

LIBSRCS += hdhomerun_channels.c
LIBSRCS += hdhomerun_channelscan.c
LIBSRCS += hdhomerun_control.c
LIBSRCS += hdhomerun_debug.c
LIBSRCS += hdhomerun_device.c
LIBSRCS += hdhomerun_device_selector.c
LIBSRCS += hdhomerun_discover.c
LIBSRCS += hdhomerun_os_posix.c
LIBSRCS += hdhomerun_pkt.c
LIBSRCS += hdhomerun_sock_posix.c
LIBSRCS += hdhomerun_video.c

LIBVERSION = 1.0.0
SONAME = 1
CC    := $(CROSS_COMPILE)gcc
STRIP := $(CROSS_COMPILE)strip

CFLAGS += -Wall -O2 -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith
LDFLAGS += -lpthread
SHARED = -shared -Wl,-soname,libhdhomerun$(LIBEXT)

ifeq ($(OS),Windows_NT)
  BINEXT := .exe
  LIBEXT := .dll
  LDFLAGS += -liphlpapi
else
  OS := $(shell uname -s)
  LIBEXT := .so.$(LIBVERSION)
  SOEXT := .so.$(SONAME)
  SHARED := -shared -Wl,-soname,libhdhomerun$(SOEXT)
  ifeq ($(OS),Linux)
    LDFLAGS += -lrt
  endif
  ifeq ($(OS),SunOS)
    LDFLAGS += -lns -lsocket
  endif
  ifeq ($(OS),Darwin)
    CFLAGS += -arch i386 -arch ppc
    LIBEXT := .dylib
    SHARED := -dynamiclib -install_name libhdhomerun$(LIBEXT)
  endif
endif

all : hdhomerun_config$(BINEXT) libhdhomerun$(LIBEXT)

hdhomerun_config$(BINEXT) : hdhomerun_config.c $(LIBSRCS)
	$(CC) $(CFLAGS) $+ $(LDFLAGS) -o $@
	$(STRIP) $@

libhdhomerun$(LIBEXT) : $(LIBSRCS)
	$(CC) $(CFLAGS) -fPIC -DDLL_EXPORT $(SHARED) $+ $(LDFLAGS) -o $@
  	ifeq ($(OS),$(or Linux,SunOS))
		ln -s $@ libhdhomerun.so
  	endif

clean :
	-rm -f hdhomerun_config$(BINEXT)
	-rm -f libhdhomerun.*

distclean : clean

%:
	@echo "(ignoring request to make $@)"

.PHONY: all list clean distclean