1# Makefile for the Husky build environment
2
3# include Husky-Makefile-Config
4ifeq ($(DEBIAN), 1)
5# Every Debian-Source-Paket has one included.
6include /usr/share/husky/huskymak.cfg
7else ifdef RPM_BUILD_ROOT
8# RPM build requires all files to be in the source directory
9include huskymak.cfg
10else
11include ../huskymak.cfg
12endif
13
14ifeq ($(OSTYPE), UNIX)
15  LIBPREFIX=lib
16  DLLPREFIX=lib
17endif
18
19include make/makefile.inc
20
21ifeq ($(DEBUG), 1)
22  CFLAGS=$(WARNFLAGS) $(DEBCFLAGS)
23  LFLAGS=$(DEBLFLAGS)
24else
25  CFLAGS=$(WARNFLAGS) $(OPTCFLAGS)
26  LFLAGS=$(OPTLFLAGS)
27endif
28
29SRC_DIR = src/
30H_DIR   = smapi
31
32CDEFS=-D$(OSTYPE) $(ADDCDEFS) -I$(H_DIR) -I$(INCDIR)
33LIBS=-lhusky
34
35ifeq ($(DYNLIBS), 1)
36all: $(TARGETLIB) $(TARGETDLL).$(VER)
37else
38all: $(TARGETLIB)
39endif
40
41
42%$(_OBJ): $(SRC_DIR)%.c
43	$(CC) $(CFLAGS) $(CDEFS) $(SRC_DIR)$*.c
44
45$(TARGETLIB): $(OBJS)
46	$(AR) $(AR_R) $(TARGETLIB) $?
47ifdef RANLIB
48	$(RANLIB) $(TARGETLIB)
49endif
50
51ifeq ($(DYNLIBS), 1)
52  ifeq (~$(MKSHARED)~,~ld~)
53$(TARGETDLL).$(VER): $(OBJS)
54	$(LD) $(LFLAGS) -o $(TARGETDLL).$(VER) $(OBJS) -L$(LIBDIR) $(LIBS)
55  else
56$(TARGETDLL).$(VER): $(OBJS)
57	$(CC) -shared -Wl,-soname,$(TARGETDLL).$(VERH) \
58          -o $(TARGETDLL).$(VER) $(OBJS) -L$(LIBDIR) $(LIBS)
59  endif
60
61instdyn: $(TARGETLIB) $(TARGETDLL).$(VER)
62	-$(MKDIR) $(MKDIROPT) $(DESTDIR)$(DIRSEP)$(LIBDIR)
63	$(INSTALL) $(ILOPT) $(TARGETDLL).$(VER) $(DESTDIR)$(DIRSEP)$(LIBDIR)
64	-$(RM) $(RMOPT) $(DESTDIR)$(DIRSEP)$(LIBDIR)$(DIRSEP)$(TARGETDLL).$(VERH)
65	-$(RM) $(RMOPT) $(DESTDIR)$(DIRSEP)$(LIBDIR)$(DIRSEP)$(TARGETDLL)
66# Changed the symlinks from symlinks with full path to just symlinks.
67# Better so :)
68	cd $(DESTDIR)$(DIRSEP)$(LIBDIR) ;\
69	$(LN) $(LNOPT) $(TARGETDLL).$(VER) $(TARGETDLL).$(VERH) ;\
70	$(LN) $(LNOPT) $(TARGETDLL).$(VER) $(TARGETDLL)
71ifneq (~$(LDCONFIG)~, ~~)
72	$(LDCONFIG)
73endif
74
75else
76instdyn: $(TARGETLIB)
77
78endif
79
80FORCE:
81
82install-h-dir: FORCE
83	-$(MKDIR) $(MKDIROPT) $(DESTDIR)$(DIRSEP)$(INCDIR)$(DIRSEP)$(H_DIR)
84
85%.h: FORCE
86	-$(INSTALL) $(IIOPT) $(H_DIR)$(DIRSEP)$@ $(DESTDIR)$(DIRSEP)$(INCDIR)$(DIRSEP)$(H_DIR)
87
88install-h: install-h-dir $(HEADERS)
89
90install: install-h instdyn
91	-$(MKDIR) $(MKDIROPT) $(DESTDIR)$(DIRSEP)$(LIBDIR)
92	$(INSTALL) $(ISLOPT) $(TARGETLIB) $(DESTDIR)$(DIRSEP)$(LIBDIR)
93
94uninstall:
95	-cd $(DESTDIR)$(DIRSEP)$(INCDIR)$(DIRSEP)$(H_DIR) ;\
96	$(RM) $(RMOPT) $(HEADERS)
97	-$(RM) $(RMOPT) $(DESTDIR)$(DIRSEP)$(LIBDIR)$(DIRSEP)$(TARGETLIB)
98	-$(RM) $(RMOPT) $(DESTDIR)$(DIRSEP)$(LIBDIR)$(DIRSEP)$(TARGETDLL)*
99
100clean:
101	-$(RM) $(RMOPT) *$(_OBJ)
102
103distclean: clean
104	-$(RM) $(RMOPT) $(TARGETLIB)
105	-$(RM) $(RMOPT) $(TARGETDLL).$(VER)
106