File: Makefile

package info (click to toggle)
librscode 1.3-8
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 192 kB
  • sloc: ansic: 477; makefile: 96; sh: 5
file content (89 lines) | stat: -rw-r--r-- 2,229 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
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
# Makefile for Cross Interleaved Reed Solomon encoder/decoder
#
# (c) Henry Minsky, Universal Access 1991-1996
#

RANLIB = ranlib
AR = ar


VERSION = 1.0
# Upstream doesn't ship MAJOR/MINOR, but we assume them
MAJOR_VERSION = $(shell echo $(VERSION) | sed -re 's/([0-9]+)\..*/\1/')
MINOR_VERSION = $(shell echo $(VERSION) | sed -re 's/.*\.([0-9]+)/\1/')
DIRNAME= rscode-$(VERSION)

# Installation destinations
incdir ?= /usr/include/rscode/
libdir ?= /usr/lib/
incdest = $(DESTDIR)$(incdir)
libdest = $(DESTDIR)$(libdir)


CC = gcc
# OPTIMIZE_FLAGS = -O69
# DEBUG_FLAGS = -g
CFLAGS ?= -Wall -Wstrict-prototypes  $(OPTIMIZE_FLAGS) $(DEBUG_FLAGS) -I..
LDFLAGS ?= $(OPTIMIZE_FLAGS) $(DEBUG_FLAGS)
CFLAGS_STATIC = $(CFLAGS) -I.
CFLAGS_SHARED = $(CFLAGS) -I. -fPIC

LIB_CSRC = rs.c galois.c berlekamp.c crcgen.c 
LIB_HSRC = ecc.h
LIB_OBJS = rs.o galois.o berlekamp.o crcgen.o 

TARGET_LIB = libecc.a
STATIC_LIB = librscode.a
SHARED_LIB = librscode.so.$(MAJOR_VERSION).$(MINOR_VERSION)
TEST_PROGS = example

TARGETS = $(TARGET_LIB) $(TEST_PROGS)

all: $(TARGETS)

$(TARGET_LIB): $(LIB_OBJS)
	$(RM) $@
	$(AR) cq $@ $(LIB_OBJS)
	if [ "$(RANLIB)" ]; then $(RANLIB) $@; fi

example: example.o galois.o berlekamp.o crcgen.o rs.o
	gcc -o example example.o -L. -lecc

clean:
	rm -f *.o example libecc.a
	rm -f *~

dist:
	(cd ..; tar -cvf rscode-$(VERSION).tar $(DIRNAME))

depend:
	makedepend $(SRCS)


$(SHARED_LIB):$(LIB_CSRC) $(LIB_HSRC)
	$(CC) $(CFLAGS_SHARED) $(CPPFLAGS) $(LDFLAGS) -shared \
		-Wl,-soname,librscode.so.$(MAJOR_VERSION) \
		-o $@ $(LIB_CSRC)
	ln -s $@ librscode.so.$(MAJOR_VERSION)
	ln -s librscode.so.$(MAJOR_VERSION) librscode.so

$(STATIC_LIB): $(LIB_CSRC) $(LIB_HSRC)
	$(CC) $(CFLAGS_STATIC) $(CPPFLAGS) -c $(LIB_CSRC)
	$(AR) cq $@ $(LIB_OBJS)

debian-build: $(SHARED_LIB) $(STATIC_LIB)

debian-install: debian-build
	install -d $(libdest)
	install -d $(incdest)
	install $(LIB_HSRC) -m 644 $(incdest)
	install $(STATIC_LIB) -m 644 $(libdest)
	install $(SHARED_LIB) -m 644 $(libdest)
	cd $(libdest) && ln -s $(SHARED_LIB) librscode.so.$(MAJOR_VERSION)
	cd $(libdest) && ln -s librscode.so.$(MAJOR_VERSION) librscode.so

debian-clean: clean
	rm -f librscode*

# DO NOT DELETE THIS LINE -- make depend depends on it.