1#
2# digraphs:
3#
4# This file is part of the build system of a GAP kernel extension.
5# Requires automake.
6#
7
8ACLOCAL_AMFLAGS = -I m4
9
10if WITH_INCLUDED_PLANARITY
11  SUBDIRS = @PLANARITY_SUITE_DIR@
12  PLANAR_INCLUDE = -I$(top_srcdir)/@PLANARITY_SUITE_DIR@/
13endif
14
15if WITH_INCLUDED_BLISS
16  DIGRAPHS_INCLUDE = -I$(top_srcdir)/extern/
17endif
18
19BINARCHDIR = bin/$(GAPARCH)
20GAPINSTALLLIB = $(abs_top_srcdir)/$(BINARCHDIR)
21
22lib_LTLIBRARIES = digraphs.la
23
24pkginclude_HEADERS =  src/bitarray.h
25pkginclude_HEADERS += src/conditions.h
26pkginclude_HEADERS += src/digraphs-debug.h
27pkginclude_HEADERS += src/digraphs.h
28pkginclude_HEADERS += src/homos-graphs.h
29pkginclude_HEADERS += src/homos.h
30pkginclude_HEADERS += src/perms.h
31pkginclude_HEADERS += src/planar.h
32pkginclude_HEADERS += src/schreier-sims.h
33
34if WITH_INCLUDED_BLISS
35  pkginclude_HEADERS += extern/bliss-0.73/bignum.hh
36  pkginclude_HEADERS += extern/bliss-0.73/bliss_C.h
37  pkginclude_HEADERS += extern/bliss-0.73/defs.hh
38  pkginclude_HEADERS += extern/bliss-0.73/graph.hh
39  pkginclude_HEADERS += extern/bliss-0.73/heap.hh
40  pkginclude_HEADERS += extern/bliss-0.73/kqueue.hh
41  pkginclude_HEADERS += extern/bliss-0.73/kstack.hh
42  pkginclude_HEADERS += extern/bliss-0.73/orbit.hh
43  pkginclude_HEADERS += extern/bliss-0.73/partition.hh
44  pkginclude_HEADERS += extern/bliss-0.73/timer.hh
45  pkginclude_HEADERS += extern/bliss-0.73/uintseqhash.hh
46  pkginclude_HEADERS += extern/bliss-0.73/utils.hh
47endif
48
49digraphs_la_SOURCES =  src/digraphs.c
50digraphs_la_SOURCES += src/bitarray.c
51digraphs_la_SOURCES += src/conditions.c
52digraphs_la_SOURCES += src/homos.c
53digraphs_la_SOURCES += src/homos-graphs.c
54digraphs_la_SOURCES += src/perms.c
55digraphs_la_SOURCES += src/planar.c
56digraphs_la_SOURCES += src/schreier-sims.c
57
58if WITH_INCLUDED_BLISS
59  digraphs_la_SOURCES += extern/bliss-0.73/defs.cc
60  digraphs_la_SOURCES += extern/bliss-0.73/graph.cc
61  digraphs_la_SOURCES += extern/bliss-0.73/partition.cc
62  digraphs_la_SOURCES += extern/bliss-0.73/orbit.cc
63  digraphs_la_SOURCES += extern/bliss-0.73/uintseqhash.cc
64  digraphs_la_SOURCES += extern/bliss-0.73/heap.cc
65  digraphs_la_SOURCES += extern/bliss-0.73/timer.cc
66  digraphs_la_SOURCES += extern/bliss-0.73/utils.cc
67  digraphs_la_SOURCES += extern/bliss-0.73/bliss_C.cc
68endif
69
70digraphs_la_CPPFLAGS =  $(GAP_CPPFLAGS)
71digraphs_la_CPPFLAGS += $(CODE_COVERAGE_CPPFLAGS)
72
73digraphs_la_CXXFLAGS =  -O3 -march=native -mpopcnt
74digraphs_la_CXXFLAGS += $(PLANAR_INCLUDE) $(DIGRAPHS_INCLUDE)
75digraphs_la_CXXFLAGS += $(CODE_COVERAGE_CXXFLAGS)
76digraphs_la_CXXFLAGS += $(WARNING_CXXFLAGS)
77
78digraphs_la_CFLAGS   =  -O3 -march=native -mpopcnt
79digraphs_la_CFLAGS   += $(GAP_CFLAGS) $(PLANAR_INCLUDE) $(DIGRAPHS_INCLUDE)
80digraphs_la_CFLAGS   += $(CODE_COVERAGE_CFLAGS)
81digraphs_la_CFLAGS += $(WARNING_CFLAGS)
82
83digraphs_la_LDFLAGS  =  $(GAP_LDFLAGS) -module -avoid-version
84
85if WITH_INCLUDED_PLANARITY
86digraphs_la_LIBADD = @PLANARITY_SUITE_DIR@/libplanarity.la
87endif
88
89if SYS_IS_CYGWIN
90digraphs_la_LDFLAGS += -no-undefined -version-info 0:0:0 -Wl,$(GAPROOT)/bin/$(GAPARCH)/gap.dll
91endif
92
93all-local: digraphs.la
94	$(mkdir_p) $(top_srcdir)/$(BINARCHDIR) $(top_srcdir)/bin/lib
95if WITH_INCLUDED_PLANARITY
96	cp -RL @PLANARITY_SUITE_DIR@/.libs/*  $(top_srcdir)/bin/lib/
97endif
98if SYS_IS_CYGWIN
99	cp .libs/digraphs.dll $(GAPINSTALLLIB)/digraphs.so
100if WITH_INCLUDED_PLANARITY
101	cp bin/lib/cygplanarity-0.dll $(GAPROOT)/.libs
102endif
103else
104	cp .libs/digraphs.so $(GAPINSTALLLIB)/
105endif
106if KERNEL_DEBUG
107	@echo "SUCCESS (debug mode enabled)!"
108else
109	@echo "SUCCESS!"
110endif
111
112clean-local:
113	find . -name '*.gcda' -delete
114
115distclean-local:
116	rm -f *.tmp
117	rm -f coverage.info
118	rm -rf coverage/*
119	rm -rf bin/*
120
121doc: doc/manual.six
122
123doc/manual.six: doc/*.xml PackageInfo.g
124	($(GAPROOT)/bin/gap.sh -A makedoc.g)
125
126gaplint:
127	gaplint *.g gap/*
128	gaplint doc/*.xml
129	gaplint tst/testinstall.tst tst/standard/*.tst tst/extreme/*.tst tst/workspaces/*.tst
130
131cpplint:
132	cpplint src/*.[ch]
133
134lint: gaplint cpplint
135
136format:
137	clang-format -i src/*.[hc]
138
139.PHONY: debug, lint, format
140
141superclean: distclean
142	git clean -xdf --exclude *.swp --exclude *.swo
143.PHONY: superclean
144