blob: 9e0888f5923df55d2ceebf07603e3290aa3a3aca [file] [log] [blame]
Harald Welte4cd3d8a2010-03-23 00:30:19 +08001ACLOCAL_AMFLAGS = -I m4
Harald Welte3cae0392010-02-20 21:09:24 +01002
Harald Welted54c2ee2012-01-17 18:25:50 +01003AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include
Harald Welte40f35212018-09-29 01:41:58 +02004SUBDIRS = include src src/vty src/codec src/gsm src/coding src/gb src/ctrl src/sim src/pseudotalloc utils tests
Harald Welte3cae0392010-02-20 21:09:24 +01005
6pkgconfigdir = $(libdir)/pkgconfig
Harald Welte641f7ce2012-06-17 23:05:26 +08007pkgconfig_DATA = libosmocore.pc libosmocodec.pc libosmovty.pc libosmogsm.pc \
Martin Hauke13e7f052018-02-10 17:48:09 +01008 libosmogb.pc libosmoctrl.pc libosmocoding.pc libosmosim.pc
Harald Welte4cd3d8a2010-03-23 00:30:19 +08009
Maxff932bb2017-07-04 18:19:38 +020010@RELMAKE@
11
12relengdir = $(includedir)
13releng_DATA = osmo-release.mk
14
Harald Welteee497f22017-10-03 16:54:41 +080015dist_bin_SCRIPTS = osmo-release.sh
16
Maxff932bb2017-07-04 18:19:38 +020017osmo-release.mk: git-version-gen
18
Harald Welte4cd3d8a2010-03-23 00:30:19 +080019BUILT_SOURCES = $(top_srcdir)/.version
20$(top_srcdir)/.version:
21 echo $(VERSION) > $@-t && mv $@-t $@
22dist-hook:
23 echo $(VERSION) > $(distdir)/.tarball-version
Holger Hans Peter Freytherec4f1602011-07-17 12:13:31 +020024
Harald Welteee497f22017-10-03 16:54:41 +080025EXTRA_DIST = git-version-gen .version README.md osmo-release.mk osmo-release.sh
Harald Welte21e73c22011-08-17 19:33:06 +020026
27if HAVE_DOXYGEN
28
Diego Elio Pettenò200710e2012-06-29 13:01:26 -070029html_DATA = $(top_builddir)/doc/html.tar
Harald Welte21e73c22011-08-17 19:33:06 +020030
Neels Hofmeyr249fb712017-06-20 02:52:38 +020031doc: $(html_DATA)
32
Diego Elio Pettenò200710e2012-06-29 13:01:26 -070033$(html_DATA): $(top_builddir)/doc/core/html/index.html \
Harald Welte21e73c22011-08-17 19:33:06 +020034 $(top_builddir)/doc/gsm/html/index.html \
35 $(top_builddir)/doc/vty/html/index.html \
Vadim Yanitskiy3262f822016-09-23 01:48:59 +070036 $(top_builddir)/doc/codec/html/index.html \
Neels Hofmeyr249fb712017-06-20 02:52:38 +020037 $(top_builddir)/doc/coding/html/index.html \
Harald Welteb4186822018-05-26 17:25:11 +020038 $(top_builddir)/doc/ctrl/html/index.html \
Neels Hofmeyr249fb712017-06-20 02:52:38 +020039 $(top_builddir)/doc/gb/html/index.html
Harald Welte7992af02011-08-17 19:37:26 +020040 cd $(top_builddir)/doc && tar cf html.tar */html
Harald Welte21e73c22011-08-17 19:33:06 +020041
Neels Hofmeyr2fe50ac2019-02-01 05:25:36 +010042# Support doxygen cross references from each library to each other library:
43# First generate the docs to make sure all .tag files are in place.
44# In a second run, generate the content with proper referencing.
45# For example, libosmocore references tags from libosmovty and vice versa,
46# so both need to generate tag files first, and then do another run.
47#
48# Generate each docs tree, and touch a libosmofoo.tag.prep file when done.
49# It means that a libosmofoo.tag file is up-to-date.
50# Touch a separate "*.prep" target: libosmofoo.tag as target would create
51# circular dependency: we would rebuild all every time 'make' is invoked.
52# The .prep file also depends on all the source files for that library.
53
54$(top_builddir)/doc/libosmocore.tag.prep: $(top_builddir)/Doxyfile.core
55 rm -rf $(top_builddir)/doc/core; mkdir -p $(top_builddir)/doc/core
56 rm -rf $(top_builddir)/doc/libosmocore.map
57 -$(DOXYGEN) $(top_builddir)/Doxyfile.core
58 touch "$@"
59
60$(top_builddir)/doc/libosmogsm.tag.prep: $(top_builddir)/Doxyfile.gsm
61 rm -rf $(top_builddir)/doc/gsm; mkdir -p $(top_builddir)/doc/gsm
62 rm -rf $(top_builddir)/doc/libosmogsm.map
63 -$(DOXYGEN) $(top_builddir)/Doxyfile.gsm
64 touch "$@"
65
66$(top_builddir)/doc/libosmovty.tag.prep: $(top_builddir)/Doxyfile.vty
67 rm -rf $(top_builddir)/doc/vty; mkdir -p $(top_builddir)/doc/vty
68 rm -rf $(top_builddir)/doc/libosmovty.map
69 -$(DOXYGEN) $(top_builddir)/Doxyfile.vty
70 touch "$@"
71
72$(top_builddir)/doc/libosmocodec.tag.prep: $(top_builddir)/Doxyfile.codec
73 rm -rf $(top_builddir)/doc/codec; mkdir -p $(top_builddir)/doc/codec
74 rm -rf $(top_builddir)/doc/libosmocodec.map
75 -$(DOXYGEN) $(top_builddir)/Doxyfile.codec
76 touch "$@"
77
78$(top_builddir)/doc/libosmocoding.tag.prep: $(top_builddir)/Doxyfile.coding
79 rm -rf $(top_builddir)/doc/coding; mkdir -p $(top_builddir)/doc/coding
80 rm -rf $(top_builddir)/doc/libosmocoding.map
81 -$(DOXYGEN) $(top_builddir)/Doxyfile.coding
82 touch "$@"
83
84$(top_builddir)/doc/libosmoctrl.tag.prep: $(top_builddir)/Doxyfile.ctrl
85 rm -rf $(top_builddir)/doc/ctrl; mkdir -p $(top_builddir)/doc/ctrl
86 rm -rf $(top_builddir)/doc/libosmoctrl.map
87 -$(DOXYGEN) $(top_builddir)/Doxyfile.ctrl
88 touch "$@"
89
90$(top_builddir)/doc/libosmogb.tag.prep: $(top_builddir)/Doxyfile.gb
91 rm -rf $(top_builddir)/doc/gb; mkdir -p $(top_builddir)/doc/gb
92 rm -rf $(top_builddir)/doc/libosmogb.map
93 -$(DOXYGEN) $(top_builddir)/Doxyfile.gb
94 touch "$@"
95
96# Build for real once all depending .tag files are in place.
97# Depend on the own .tag.prep file to avoid concurrent builds of the same doc
98# tree, and to also depend on all the source files listed above.
99#
100# Each library should depend on all the tag.prep files of which it lists .tag
101# files in Doxyfile under TAGFILES.
102#
103# In turn, include all .tag files in TAGFILES of libraries to which "\ref"
104# references point.
105#
106# Easiest is to just depend on all tag.prep files all across everywhere.
107
108$(top_builddir)/doc/core/html/index.html: $(top_builddir)/doc/libosmocore.tag.prep \
109 $(top_builddir)/doc/libosmogsm.tag.prep \
110 $(top_builddir)/doc/libosmovty.tag.prep \
111 $(top_builddir)/doc/libosmocodec.tag.prep \
112 $(top_builddir)/doc/libosmocoding.tag.prep \
113 $(top_builddir)/doc/libosmoctrl.tag.prep \
114 $(top_builddir)/doc/libosmogb.tag.prep
115 rm -rf $(top_builddir)/doc/core; mkdir -p $(top_builddir)/doc/core
Harald Weltec7859ed2011-08-20 12:54:17 +0200116 $(DOXYGEN) Doxyfile.core
Harald Welte21e73c22011-08-17 19:33:06 +0200117
Neels Hofmeyr2fe50ac2019-02-01 05:25:36 +0100118$(top_builddir)/doc/gsm/html/index.html: $(top_builddir)/doc/libosmogsm.tag.prep \
119 $(top_builddir)/doc/libosmocore.tag.prep \
120 $(top_builddir)/doc/libosmovty.tag.prep \
121 $(top_builddir)/doc/libosmocodec.tag.prep \
122 $(top_builddir)/doc/libosmocoding.tag.prep \
123 $(top_builddir)/doc/libosmoctrl.tag.prep \
124 $(top_builddir)/doc/libosmogb.tag.prep
125 rm -rf $(top_builddir)/doc/gsm; mkdir -p $(top_builddir)/doc/gsm
Harald Welte21e73c22011-08-17 19:33:06 +0200126 $(DOXYGEN) Doxyfile.gsm
127
Neels Hofmeyr2fe50ac2019-02-01 05:25:36 +0100128$(top_builddir)/doc/vty/html/index.html: $(top_builddir)/doc/libosmovty.tag.prep \
129 $(top_builddir)/doc/libosmocore.tag.prep \
130 $(top_builddir)/doc/libosmogsm.tag.prep \
131 $(top_builddir)/doc/libosmocodec.tag.prep \
132 $(top_builddir)/doc/libosmocoding.tag.prep \
133 $(top_builddir)/doc/libosmoctrl.tag.prep \
134 $(top_builddir)/doc/libosmogb.tag.prep
135 rm -rf $(top_builddir)/doc/vty; mkdir -p $(top_builddir)/doc/vty
Harald Welte21e73c22011-08-17 19:33:06 +0200136 $(DOXYGEN) Doxyfile.vty
137
Neels Hofmeyr2fe50ac2019-02-01 05:25:36 +0100138$(top_builddir)/doc/codec/html/index.html: $(top_builddir)/doc/libosmocodec.tag.prep \
139 $(top_builddir)/doc/libosmocore.tag.prep \
140 $(top_builddir)/doc/libosmogsm.tag.prep \
141 $(top_builddir)/doc/libosmovty.tag.prep \
142 $(top_builddir)/doc/libosmocoding.tag.prep \
143 $(top_builddir)/doc/libosmoctrl.tag.prep \
144 $(top_builddir)/doc/libosmogb.tag.prep
145 rm -rf $(top_builddir)/doc/codec; mkdir -p $(top_builddir)/doc/codec
Harald Welte21e73c22011-08-17 19:33:06 +0200146 $(DOXYGEN) Doxyfile.codec
147
Neels Hofmeyr2fe50ac2019-02-01 05:25:36 +0100148$(top_builddir)/doc/coding/html/index.html: $(top_builddir)/doc/libosmocoding.tag.prep \
149 $(top_builddir)/doc/libosmocore.tag.prep \
150 $(top_builddir)/doc/libosmogsm.tag.prep \
151 $(top_builddir)/doc/libosmovty.tag.prep \
152 $(top_builddir)/doc/libosmocodec.tag.prep \
153 $(top_builddir)/doc/libosmoctrl.tag.prep \
154 $(top_builddir)/doc/libosmogb.tag.prep
155 rm -rf $(top_builddir)/doc/coding; mkdir -p $(top_builddir)/doc/coding
Vadim Yanitskiy3262f822016-09-23 01:48:59 +0700156 $(DOXYGEN) Doxyfile.coding
157
Neels Hofmeyr2fe50ac2019-02-01 05:25:36 +0100158$(top_builddir)/doc/ctrl/html/index.html: $(top_builddir)/doc/libosmoctrl.tag.prep \
159 $(top_builddir)/doc/libosmocore.tag.prep \
160 $(top_builddir)/doc/libosmogsm.tag.prep \
161 $(top_builddir)/doc/libosmovty.tag.prep \
162 $(top_builddir)/doc/libosmocodec.tag.prep \
163 $(top_builddir)/doc/libosmocoding.tag.prep \
164 $(top_builddir)/doc/libosmogb.tag.prep
165 rm -rf $(top_builddir)/doc/ctrl; mkdir -p $(top_builddir)/doc/ctrl
Harald Welteb4186822018-05-26 17:25:11 +0200166 $(DOXYGEN) Doxyfile.ctrl
167
Neels Hofmeyr2fe50ac2019-02-01 05:25:36 +0100168$(top_builddir)/doc/gb/html/index.html: $(top_builddir)/doc/libosmogb.tag.prep \
169 $(top_builddir)/doc/libosmocore.tag.prep \
170 $(top_builddir)/doc/libosmogsm.tag.prep \
171 $(top_builddir)/doc/libosmovty.tag.prep \
172 $(top_builddir)/doc/libosmocodec.tag.prep \
173 $(top_builddir)/doc/libosmocoding.tag.prep \
174 $(top_builddir)/doc/libosmoctrl.tag.prep
175 rm -rf $(top_builddir)/doc/gb; mkdir -p $(top_builddir)/doc/gb
Neels Hofmeyr249fb712017-06-20 02:52:38 +0200176 $(DOXYGEN) Doxyfile.gb
177
Harald Welte21e73c22011-08-17 19:33:06 +0200178install-data-hook:
Diego Elio Pettenò200710e2012-06-29 13:01:26 -0700179 cd $(DESTDIR)$(htmldir) && tar xf html.tar && rm -f html.tar
Harald Welte21e73c22011-08-17 19:33:06 +0200180
181uninstall-hook:
Harald Welteb4186822018-05-26 17:25:11 +0200182 cd $(DESTDIR)$(htmldir) && rm -rf {core,gsm,vty,codec,coding,ctrl,gb}
Harald Welte21e73c22011-08-17 19:33:06 +0200183
Neels Hofmeyr2fe50ac2019-02-01 05:25:36 +0100184DX_CLEAN = doc/{core,gsm,vty,codec,coding,ctrl,gb}/html/search/* doc/{core,gsm,vty,codec,coding,ctrl,gb}/{html,latex}/* doc/html.tar doc/{core,gsm,vty,codec,coding,ctrl,gb}/doxygen_sqlite3.db doc/*.tag doc/*.tag.prep
Harald Welte21e73c22011-08-17 19:33:06 +0200185endif
Harald Welte47945f02011-08-20 13:00:37 +0200186
187MOSTLYCLEANFILES = $(DX_CLEAN)