summaryrefslogtreecommitdiff
path: root/GNUmakefile
blob: 6f6101c32fc68cc1d0b1f14959615dfa0e591746 (plain)
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
#makeAll.sh
SHELL=/bin/sh
prefix=/usr/local

OS=$(shell uname || uname -s)
ARCH=$(shell arch || uname -m)

all: lib

ifndef DC
    ifneq ($(strip $(shell which dmd 2>/dev/null)),)
        DC=dmd
    else ifneq ($(strip $(shell which ldc 2>/dev/null)),)
        DC=ldc
    else
        DC=gdc
    endif
endif

ifeq ("$(DC)","dmd")
    DCFLAGS=-O
    LINKERFLAG=-L
    output=-of$@
else ifeq ("$(DC)","ldc")
    DCFLAGS=-O
    LINKERFLAG=-L
    output=-of$@
else
    DCFLAGS=-O2
    LINKERFLAG=-Xlinker
    output=-o $@
endif

ifeq ("$(OS)","Darwin")
    LDFLAGS+=-Wl,-undefined,dynamic_lookup
else ifeq ("$(OS)","Linux")
    LDFLAGS+=$(LINKERFLAG)-ldl
endif

ifeq ("$(ARCH)", "x86_64") 
    DCFLAGS+=-m64
    LDFLAGS+=-m64
endif 

AR=ar
RANLIB=ranlib

#######################################################################

LIBNAME_DMAGICK = libdmagick.a
SOURCES_DMAGICK = $(shell find \
        dmagick \
        -name '*.d' )
OBJECTS_DMAGICK = $(shell echo $(SOURCES_DMAGICK) | sed -e 's/\.d/\.o/g')

#######################################################################

lib: $(LIBNAME_DMAGICK)

$(LIBNAME_DMAGICK): IMPORTS=-Idmagick
$(LIBNAME_DMAGICK): $(OBJECTS_DMAGICK)
	$(AR) rcs $@ $^
	$(RANLIB) $@

#######################################################################

%.o : %.d
	$(DC) $(DCFLAGS) $(IMPORTS) -c $< $(output)

#######################################################################

install: lib
	install -d $(DESTDIR)$(prefix)/include/d
	(echo $(SOURCES_DMAGICK) | xargs tar c) | (cd $(DESTDIR)$(prefix)/include/d; tar xv)
	install -d $(DESTDIR)$(prefix)/lib
	install -m 644 $(LIBNAME_DMAGICK) $(DESTDIR)$(prefix)/lib
	
uninstall:
	rm -rf $(DESTDIR)$(prefix)/include/d/dmagick
	rm -f $(DESTDIR)$(prefix)/lib/$(LIBNAME_DMAGICK)

clean:
	-rm -f $(LIBNAME_DMAGICK) $(OBJECTS_DMAGICK)