Make the library when building dist and normal targets
[omfsprogs.git] / Makefile
blob220fd7c2c81497ae127c22f5acafb1238dce52a2
1 VERSION=0.1.0
2 DISTNAME=omfsprogs-$(VERSION)
3 DISTFILES=*.[ch] Makefile README COPYING
4 LIBFILES=libomfs/*.[ch] libomfs/Makefile
5 TESTFILES=test/*.[ch] test/Makefile test/*.sh
7 COMMON_SRCS=dirscan.c stack.c io.c
8 COMMON_OBJS=$(COMMON_SRCS:.c=.o)
10 OMFSCK_SRCS=omfsck.c fix.c check.c
11 OMFSCK_OBJS=$(OMFSCK_SRCS:.c=.o) $(COMMON_OBJS)
13 MKOMFS_SRCS=mkomfs.c create_fs.c disksize.c
14 MKOMFS_OBJS=$(MKOMFS_SRCS:.c=.o) $(COMMON_OBJS)
16 OMFSDUMP_SRCS=omfsdump.c dump.c
17 OMFSDUMP_OBJS=$(OMFSDUMP_SRCS:.c=.o) $(COMMON_OBJS)
19 CFLAGS=-g -Wall -Wpadded -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -I libomfs
20 LIBS=-Llibomfs -lomfs
22 all: omfsck mkomfs omfsdump
24 libomfs: .PHONY
25 cd libomfs && $(MAKE)
27 omfsck: $(OMFSCK_OBJS) libomfs
28 gcc -o omfsck $(OMFSCK_OBJS) $(LIBS)
30 mkomfs: $(MKOMFS_OBJS) libomfs
31 gcc -o mkomfs $(MKOMFS_OBJS) $(LIBS)
33 omfsdump: $(OMFSDUMP_OBJS) libomfs
34 gcc -o omfsdump $(OMFSDUMP_OBJS) $(LIBS)
36 clean:
37 $(RM) omfsck mkomfs *.o
38 cd libomfs && $(MAKE) clean
39 cd test && $(MAKE) clean
41 dist: clean
42 mkdir $(DISTNAME)
43 mkdir $(DISTNAME)/libomfs
44 mkdir $(DISTNAME)/test
45 cp $(DISTFILES) $(DISTNAME)
46 cp $(LIBFILES) $(DISTNAME)/libomfs
47 cp $(TESTFILES) $(DISTNAME)/test
48 tar czvf $(DISTNAME).tar.gz $(DISTNAME)
49 $(RM) -r $(DISTNAME)
51 distcheck: dist
52 mkdir build
53 cd build && tar xzvf ../$(DISTNAME).tar.gz && \
54 cd $(DISTNAME) && $(MAKE) && \
55 cd test && $(MAKE)
56 $(RM) -r build
58 .PHONY: