File: Makefile

package info (click to toggle)
libxmltok 1.2-4
  • links: PTS
  • area: main
  • in suites: bookworm, bullseye, buster
  • size: 540 kB
  • ctags: 1,359
  • sloc: ansic: 10,535; makefile: 134
file content (37 lines) | stat: -rw-r--r-- 875 bytes parent folder | download | duplicates (3)
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
LIB		:= xmlparse
OBJS		:= xmlparse.o
INCLUDES	:= -I../xmltok -I../xmlparse
SHOBJS		:= $(OBJS:%=shared/%)
ELF_SONAME	:= lib$(LIB).so.$(ELF_SO_VERSION)
ELF_OTHER_LIBS	:= -L../xmltok -lxmltok -lc

prefix		= /usr/local
lib_dir		= $(prefix)/lib
inc_dir		= $(prefix)/include/xmltok

lib$(LIB).a: $(OBJS)
	$(AR) r $@ $?
	$(RANLIB) $@

lib$(LIB).so.$(LIB_VERSION): $(SHOBJS)
	$(CC) --shared -o $@ -Wl,-soname,$(ELF_SONAME) $? $(ELF_OTHER_LIBS)
	ln -sf $@ lib$(LIB).so
	ln -sf $@ $(ELF_SONAME)

clean:
	rm -f $(OBJS) lib$(LIB).a
	rm -f lib$(LIB).so.$(LIB_VERSION) lib$(LIB).so $(ELF_SONAME)
	rm -rf shared/

.c.o:
	$(CC) $(CFLAGS) $(INCLUDES) -c -o $@ $<

shared/%.o:	%.c
	@[ -d shared ] || mkdir shared
	$(CC) $(CFLAGS) $(INCLUDES) $(ELF_FLAGS) -c -o $@ $<

install:
	mkdir -p $(lib_dir) $(inc_dir)
	cp -a lib$(LIB).a $(lib_dir)
	cp -a lib$(LIB).so* $(lib_dir)
	cp -a *.h $(inc_dir)