Harald Welte | 4cd3d8a | 2010-03-23 00:30:19 +0800 | [diff] [blame] | 1 | ACLOCAL_AMFLAGS = -I m4 |
Harald Welte | 3cae039 | 2010-02-20 21:09:24 +0100 | [diff] [blame] | 2 | |
Harald Welte | d54c2ee | 2012-01-17 18:25:50 +0100 | [diff] [blame] | 3 | AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include |
Harald Welte | da432cd | 2019-12-15 19:13:26 +0100 | [diff] [blame] | 4 | SUBDIRS = include src src/vty src/codec src/gsm src/coding src/gb src/ctrl src/sim src/pseudotalloc src/usb utils tests |
Harald Welte | 3cae039 | 2010-02-20 21:09:24 +0100 | [diff] [blame] | 5 | |
| 6 | pkgconfigdir = $(libdir)/pkgconfig |
Harald Welte | 641f7ce | 2012-06-17 23:05:26 +0800 | [diff] [blame] | 7 | pkgconfig_DATA = libosmocore.pc libosmocodec.pc libosmovty.pc libosmogsm.pc \ |
Harald Welte | da432cd | 2019-12-15 19:13:26 +0100 | [diff] [blame] | 8 | libosmogb.pc libosmoctrl.pc libosmocoding.pc libosmosim.pc \ |
| 9 | libosmousb.pc |
Harald Welte | 4cd3d8a | 2010-03-23 00:30:19 +0800 | [diff] [blame] | 10 | |
Vasil Velichkov | 499510b | 2019-04-03 02:32:37 +0300 | [diff] [blame] | 11 | aclocaldir = $(datadir)/aclocal |
| 12 | dist_aclocal_DATA = m4/osmo_ac_code_coverage.m4 \ |
| 13 | m4/osmo_ax_code_coverage.m4 |
| 14 | |
Max | ff932bb | 2017-07-04 18:19:38 +0200 | [diff] [blame] | 15 | @RELMAKE@ |
Vasil Velichkov | 499510b | 2019-04-03 02:32:37 +0300 | [diff] [blame] | 16 | @CODE_COVERAGE_RULES@ |
Max | ff932bb | 2017-07-04 18:19:38 +0200 | [diff] [blame] | 17 | |
| 18 | relengdir = $(includedir) |
| 19 | releng_DATA = osmo-release.mk |
| 20 | |
Harald Welte | ee497f2 | 2017-10-03 16:54:41 +0800 | [diff] [blame] | 21 | dist_bin_SCRIPTS = osmo-release.sh |
| 22 | |
Max | ff932bb | 2017-07-04 18:19:38 +0200 | [diff] [blame] | 23 | osmo-release.mk: git-version-gen |
| 24 | |
Harald Welte | 4cd3d8a | 2010-03-23 00:30:19 +0800 | [diff] [blame] | 25 | BUILT_SOURCES = $(top_srcdir)/.version |
| 26 | $(top_srcdir)/.version: |
| 27 | echo $(VERSION) > $@-t && mv $@-t $@ |
| 28 | dist-hook: |
| 29 | echo $(VERSION) > $(distdir)/.tarball-version |
Holger Hans Peter Freyther | ec4f160 | 2011-07-17 12:13:31 +0200 | [diff] [blame] | 30 | |
Harald Welte | ee497f2 | 2017-10-03 16:54:41 +0800 | [diff] [blame] | 31 | EXTRA_DIST = git-version-gen .version README.md osmo-release.mk osmo-release.sh |
Harald Welte | 21e73c2 | 2011-08-17 19:33:06 +0200 | [diff] [blame] | 32 | |
Neels Hofmeyr | 44c15b7 | 2019-02-01 05:56:09 +0100 | [diff] [blame] | 33 | HTML = \ |
| 34 | $(top_builddir)/doc/core/html/index.html \ |
| 35 | $(top_builddir)/doc/gsm/html/index.html \ |
| 36 | $(top_builddir)/doc/vty/html/index.html \ |
| 37 | $(top_builddir)/doc/codec/html/index.html \ |
| 38 | $(top_builddir)/doc/coding/html/index.html \ |
| 39 | $(top_builddir)/doc/ctrl/html/index.html \ |
| 40 | $(top_builddir)/doc/gb/html/index.html |
Harald Welte | 21e73c2 | 2011-08-17 19:33:06 +0200 | [diff] [blame] | 41 | |
Neels Hofmeyr | 44c15b7 | 2019-02-01 05:56:09 +0100 | [diff] [blame] | 42 | if HAVE_DOXYGEN |
Diego Elio Pettenò | 200710e | 2012-06-29 13:01:26 -0700 | [diff] [blame] | 43 | html_DATA = $(top_builddir)/doc/html.tar |
Harald Welte | 21e73c2 | 2011-08-17 19:33:06 +0200 | [diff] [blame] | 44 | |
Neels Hofmeyr | 249fb71 | 2017-06-20 02:52:38 +0200 | [diff] [blame] | 45 | doc: $(html_DATA) |
| 46 | |
Neels Hofmeyr | 44c15b7 | 2019-02-01 05:56:09 +0100 | [diff] [blame] | 47 | $(html_DATA): apidoc |
| 48 | else |
| 49 | DOXYGEN=doxygen |
| 50 | endif |
| 51 | |
| 52 | .PHONY: apidoc |
| 53 | apidoc: $(HTML) |
Harald Welte | 7992af0 | 2011-08-17 19:37:26 +0200 | [diff] [blame] | 54 | cd $(top_builddir)/doc && tar cf html.tar */html |
Harald Welte | 21e73c2 | 2011-08-17 19:33:06 +0200 | [diff] [blame] | 55 | |
Neels Hofmeyr | 2fe50ac | 2019-02-01 05:25:36 +0100 | [diff] [blame] | 56 | # Support doxygen cross references from each library to each other library: |
| 57 | # First generate the docs to make sure all .tag files are in place. |
| 58 | # In a second run, generate the content with proper referencing. |
| 59 | # For example, libosmocore references tags from libosmovty and vice versa, |
| 60 | # so both need to generate tag files first, and then do another run. |
| 61 | # |
| 62 | # Generate each docs tree, and touch a libosmofoo.tag.prep file when done. |
| 63 | # It means that a libosmofoo.tag file is up-to-date. |
| 64 | # Touch a separate "*.prep" target: libosmofoo.tag as target would create |
| 65 | # circular dependency: we would rebuild all every time 'make' is invoked. |
| 66 | # The .prep file also depends on all the source files for that library. |
| 67 | |
Neels Hofmeyr | 375bf6d | 2019-02-01 05:25:36 +0100 | [diff] [blame] | 68 | $(top_builddir)/doc/libosmocore.tag.prep: $(top_builddir)/Doxyfile.core \ |
| 69 | $(top_srcdir)/include/osmocom/core/*.h \ |
| 70 | $(top_srcdir)/src/*.[hc] \ |
| 71 | $(top_srcdir)/src/pseudotalloc/*.[hc] |
Neels Hofmeyr | 2fe50ac | 2019-02-01 05:25:36 +0100 | [diff] [blame] | 72 | rm -rf $(top_builddir)/doc/core; mkdir -p $(top_builddir)/doc/core |
| 73 | rm -rf $(top_builddir)/doc/libosmocore.map |
| 74 | -$(DOXYGEN) $(top_builddir)/Doxyfile.core |
| 75 | touch "$@" |
| 76 | |
Neels Hofmeyr | 375bf6d | 2019-02-01 05:25:36 +0100 | [diff] [blame] | 77 | $(top_builddir)/doc/libosmogsm.tag.prep: $(top_builddir)/Doxyfile.gsm \ |
| 78 | $(top_srcdir)/include/osmocom/gsm/*.h \ |
| 79 | $(top_srcdir)/include/osmocom/gsm/protocol/*.h \ |
| 80 | $(top_srcdir)/include/osmocom/crypt/*.h \ |
| 81 | $(top_srcdir)/src/gsm/*.c \ |
| 82 | $(top_srcdir)/src/gsm/milenage/*.[hc] |
Neels Hofmeyr | 2fe50ac | 2019-02-01 05:25:36 +0100 | [diff] [blame] | 83 | rm -rf $(top_builddir)/doc/gsm; mkdir -p $(top_builddir)/doc/gsm |
| 84 | rm -rf $(top_builddir)/doc/libosmogsm.map |
| 85 | -$(DOXYGEN) $(top_builddir)/Doxyfile.gsm |
| 86 | touch "$@" |
| 87 | |
Oliver Smith | 316d1e1 | 2019-06-28 09:13:22 +0200 | [diff] [blame] | 88 | # Don't delete the entire doc/vty, it contains example.xml and vtydoc.xsd (OS#3986) |
Neels Hofmeyr | 375bf6d | 2019-02-01 05:25:36 +0100 | [diff] [blame] | 89 | $(top_builddir)/doc/libosmovty.tag.prep: $(top_builddir)/Doxyfile.vty \ |
| 90 | $(top_srcdir)/include/osmocom/vty/*.h \ |
| 91 | $(top_srcdir)/src/vty/*.c |
Oliver Smith | 316d1e1 | 2019-06-28 09:13:22 +0200 | [diff] [blame] | 92 | rm -rf $(top_builddir)/doc/vty/html $(top_builddir)/doc/vty/latex |
Neels Hofmeyr | 2fe50ac | 2019-02-01 05:25:36 +0100 | [diff] [blame] | 93 | rm -rf $(top_builddir)/doc/libosmovty.map |
| 94 | -$(DOXYGEN) $(top_builddir)/Doxyfile.vty |
| 95 | touch "$@" |
| 96 | |
Neels Hofmeyr | 375bf6d | 2019-02-01 05:25:36 +0100 | [diff] [blame] | 97 | $(top_builddir)/doc/libosmocodec.tag.prep: $(top_builddir)/Doxyfile.codec \ |
| 98 | $(top_srcdir)/include/osmocom/codec/*.h \ |
| 99 | $(top_srcdir)/src/codec/*.c |
Neels Hofmeyr | 2fe50ac | 2019-02-01 05:25:36 +0100 | [diff] [blame] | 100 | rm -rf $(top_builddir)/doc/codec; mkdir -p $(top_builddir)/doc/codec |
| 101 | rm -rf $(top_builddir)/doc/libosmocodec.map |
| 102 | -$(DOXYGEN) $(top_builddir)/Doxyfile.codec |
| 103 | touch "$@" |
| 104 | |
Neels Hofmeyr | 375bf6d | 2019-02-01 05:25:36 +0100 | [diff] [blame] | 105 | $(top_builddir)/doc/libosmocoding.tag.prep: $(top_builddir)/Doxyfile.coding \ |
| 106 | $(top_srcdir)/include/osmocom/coding/*.h \ |
| 107 | $(top_srcdir)/src/coding/*.c |
Neels Hofmeyr | 2fe50ac | 2019-02-01 05:25:36 +0100 | [diff] [blame] | 108 | rm -rf $(top_builddir)/doc/coding; mkdir -p $(top_builddir)/doc/coding |
| 109 | rm -rf $(top_builddir)/doc/libosmocoding.map |
| 110 | -$(DOXYGEN) $(top_builddir)/Doxyfile.coding |
| 111 | touch "$@" |
| 112 | |
Neels Hofmeyr | 375bf6d | 2019-02-01 05:25:36 +0100 | [diff] [blame] | 113 | $(top_builddir)/doc/libosmoctrl.tag.prep: $(top_builddir)/Doxyfile.ctrl \ |
| 114 | $(top_srcdir)/include/osmocom/ctrl/*.h \ |
| 115 | $(top_srcdir)/src/ctrl/*.c |
Neels Hofmeyr | 2fe50ac | 2019-02-01 05:25:36 +0100 | [diff] [blame] | 116 | rm -rf $(top_builddir)/doc/ctrl; mkdir -p $(top_builddir)/doc/ctrl |
| 117 | rm -rf $(top_builddir)/doc/libosmoctrl.map |
| 118 | -$(DOXYGEN) $(top_builddir)/Doxyfile.ctrl |
| 119 | touch "$@" |
| 120 | |
Neels Hofmeyr | 375bf6d | 2019-02-01 05:25:36 +0100 | [diff] [blame] | 121 | $(top_builddir)/doc/libosmogb.tag.prep: $(top_builddir)/Doxyfile.gb \ |
| 122 | $(top_srcdir)/include/osmocom/gprs/*.h \ |
| 123 | $(top_srcdir)/src/gb/*.[hc] |
Neels Hofmeyr | 2fe50ac | 2019-02-01 05:25:36 +0100 | [diff] [blame] | 124 | rm -rf $(top_builddir)/doc/gb; mkdir -p $(top_builddir)/doc/gb |
| 125 | rm -rf $(top_builddir)/doc/libosmogb.map |
| 126 | -$(DOXYGEN) $(top_builddir)/Doxyfile.gb |
| 127 | touch "$@" |
| 128 | |
| 129 | # Build for real once all depending .tag files are in place. |
| 130 | # Depend on the own .tag.prep file to avoid concurrent builds of the same doc |
| 131 | # tree, and to also depend on all the source files listed above. |
| 132 | # |
| 133 | # Each library should depend on all the tag.prep files of which it lists .tag |
| 134 | # files in Doxyfile under TAGFILES. |
| 135 | # |
| 136 | # In turn, include all .tag files in TAGFILES of libraries to which "\ref" |
| 137 | # references point. |
| 138 | # |
| 139 | # Easiest is to just depend on all tag.prep files all across everywhere. |
| 140 | |
| 141 | $(top_builddir)/doc/core/html/index.html: $(top_builddir)/doc/libosmocore.tag.prep \ |
| 142 | $(top_builddir)/doc/libosmogsm.tag.prep \ |
| 143 | $(top_builddir)/doc/libosmovty.tag.prep \ |
| 144 | $(top_builddir)/doc/libosmocodec.tag.prep \ |
| 145 | $(top_builddir)/doc/libosmocoding.tag.prep \ |
| 146 | $(top_builddir)/doc/libosmoctrl.tag.prep \ |
| 147 | $(top_builddir)/doc/libosmogb.tag.prep |
| 148 | rm -rf $(top_builddir)/doc/core; mkdir -p $(top_builddir)/doc/core |
Harald Welte | c7859ed | 2011-08-20 12:54:17 +0200 | [diff] [blame] | 149 | $(DOXYGEN) Doxyfile.core |
Harald Welte | 21e73c2 | 2011-08-17 19:33:06 +0200 | [diff] [blame] | 150 | |
Neels Hofmeyr | 2fe50ac | 2019-02-01 05:25:36 +0100 | [diff] [blame] | 151 | $(top_builddir)/doc/gsm/html/index.html: $(top_builddir)/doc/libosmogsm.tag.prep \ |
| 152 | $(top_builddir)/doc/libosmocore.tag.prep \ |
| 153 | $(top_builddir)/doc/libosmovty.tag.prep \ |
| 154 | $(top_builddir)/doc/libosmocodec.tag.prep \ |
| 155 | $(top_builddir)/doc/libosmocoding.tag.prep \ |
| 156 | $(top_builddir)/doc/libosmoctrl.tag.prep \ |
| 157 | $(top_builddir)/doc/libosmogb.tag.prep |
| 158 | rm -rf $(top_builddir)/doc/gsm; mkdir -p $(top_builddir)/doc/gsm |
Harald Welte | 21e73c2 | 2011-08-17 19:33:06 +0200 | [diff] [blame] | 159 | $(DOXYGEN) Doxyfile.gsm |
| 160 | |
Oliver Smith | 316d1e1 | 2019-06-28 09:13:22 +0200 | [diff] [blame] | 161 | # Don't delete the entire doc/vty, it contains example.xml and vtydoc.xsd (OS#3986) |
Neels Hofmeyr | 2fe50ac | 2019-02-01 05:25:36 +0100 | [diff] [blame] | 162 | $(top_builddir)/doc/vty/html/index.html: $(top_builddir)/doc/libosmovty.tag.prep \ |
| 163 | $(top_builddir)/doc/libosmocore.tag.prep \ |
| 164 | $(top_builddir)/doc/libosmogsm.tag.prep \ |
| 165 | $(top_builddir)/doc/libosmocodec.tag.prep \ |
| 166 | $(top_builddir)/doc/libosmocoding.tag.prep \ |
| 167 | $(top_builddir)/doc/libosmoctrl.tag.prep \ |
| 168 | $(top_builddir)/doc/libosmogb.tag.prep |
Oliver Smith | 316d1e1 | 2019-06-28 09:13:22 +0200 | [diff] [blame] | 169 | rm -rf $(top_builddir)/doc/vty/html $(top_builddir)/doc/vty/latex |
Harald Welte | 21e73c2 | 2011-08-17 19:33:06 +0200 | [diff] [blame] | 170 | $(DOXYGEN) Doxyfile.vty |
| 171 | |
Neels Hofmeyr | 2fe50ac | 2019-02-01 05:25:36 +0100 | [diff] [blame] | 172 | $(top_builddir)/doc/codec/html/index.html: $(top_builddir)/doc/libosmocodec.tag.prep \ |
| 173 | $(top_builddir)/doc/libosmocore.tag.prep \ |
| 174 | $(top_builddir)/doc/libosmogsm.tag.prep \ |
| 175 | $(top_builddir)/doc/libosmovty.tag.prep \ |
| 176 | $(top_builddir)/doc/libosmocoding.tag.prep \ |
| 177 | $(top_builddir)/doc/libosmoctrl.tag.prep \ |
| 178 | $(top_builddir)/doc/libosmogb.tag.prep |
| 179 | rm -rf $(top_builddir)/doc/codec; mkdir -p $(top_builddir)/doc/codec |
Harald Welte | 21e73c2 | 2011-08-17 19:33:06 +0200 | [diff] [blame] | 180 | $(DOXYGEN) Doxyfile.codec |
| 181 | |
Neels Hofmeyr | 2fe50ac | 2019-02-01 05:25:36 +0100 | [diff] [blame] | 182 | $(top_builddir)/doc/coding/html/index.html: $(top_builddir)/doc/libosmocoding.tag.prep \ |
| 183 | $(top_builddir)/doc/libosmocore.tag.prep \ |
| 184 | $(top_builddir)/doc/libosmogsm.tag.prep \ |
| 185 | $(top_builddir)/doc/libosmovty.tag.prep \ |
| 186 | $(top_builddir)/doc/libosmocodec.tag.prep \ |
| 187 | $(top_builddir)/doc/libosmoctrl.tag.prep \ |
| 188 | $(top_builddir)/doc/libosmogb.tag.prep |
| 189 | rm -rf $(top_builddir)/doc/coding; mkdir -p $(top_builddir)/doc/coding |
Vadim Yanitskiy | 3262f82 | 2016-09-23 01:48:59 +0700 | [diff] [blame] | 190 | $(DOXYGEN) Doxyfile.coding |
| 191 | |
Neels Hofmeyr | 2fe50ac | 2019-02-01 05:25:36 +0100 | [diff] [blame] | 192 | $(top_builddir)/doc/ctrl/html/index.html: $(top_builddir)/doc/libosmoctrl.tag.prep \ |
| 193 | $(top_builddir)/doc/libosmocore.tag.prep \ |
| 194 | $(top_builddir)/doc/libosmogsm.tag.prep \ |
| 195 | $(top_builddir)/doc/libosmovty.tag.prep \ |
| 196 | $(top_builddir)/doc/libosmocodec.tag.prep \ |
| 197 | $(top_builddir)/doc/libosmocoding.tag.prep \ |
| 198 | $(top_builddir)/doc/libosmogb.tag.prep |
| 199 | rm -rf $(top_builddir)/doc/ctrl; mkdir -p $(top_builddir)/doc/ctrl |
Harald Welte | b418682 | 2018-05-26 17:25:11 +0200 | [diff] [blame] | 200 | $(DOXYGEN) Doxyfile.ctrl |
| 201 | |
Neels Hofmeyr | 2fe50ac | 2019-02-01 05:25:36 +0100 | [diff] [blame] | 202 | $(top_builddir)/doc/gb/html/index.html: $(top_builddir)/doc/libosmogb.tag.prep \ |
| 203 | $(top_builddir)/doc/libosmocore.tag.prep \ |
| 204 | $(top_builddir)/doc/libosmogsm.tag.prep \ |
| 205 | $(top_builddir)/doc/libosmovty.tag.prep \ |
| 206 | $(top_builddir)/doc/libosmocodec.tag.prep \ |
| 207 | $(top_builddir)/doc/libosmocoding.tag.prep \ |
| 208 | $(top_builddir)/doc/libosmoctrl.tag.prep |
| 209 | rm -rf $(top_builddir)/doc/gb; mkdir -p $(top_builddir)/doc/gb |
Neels Hofmeyr | 249fb71 | 2017-06-20 02:52:38 +0200 | [diff] [blame] | 210 | $(DOXYGEN) Doxyfile.gb |
| 211 | |
Neels Hofmeyr | 44c15b7 | 2019-02-01 05:56:09 +0100 | [diff] [blame] | 212 | if HAVE_DOXYGEN |
Harald Welte | 21e73c2 | 2011-08-17 19:33:06 +0200 | [diff] [blame] | 213 | install-data-hook: |
Diego Elio Pettenò | 200710e | 2012-06-29 13:01:26 -0700 | [diff] [blame] | 214 | cd $(DESTDIR)$(htmldir) && tar xf html.tar && rm -f html.tar |
Harald Welte | 21e73c2 | 2011-08-17 19:33:06 +0200 | [diff] [blame] | 215 | |
| 216 | uninstall-hook: |
Harald Welte | b418682 | 2018-05-26 17:25:11 +0200 | [diff] [blame] | 217 | cd $(DESTDIR)$(htmldir) && rm -rf {core,gsm,vty,codec,coding,ctrl,gb} |
Harald Welte | 21e73c2 | 2011-08-17 19:33:06 +0200 | [diff] [blame] | 218 | |
Neels Hofmeyr | 2fe50ac | 2019-02-01 05:25:36 +0100 | [diff] [blame] | 219 | DX_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 Welte | 21e73c2 | 2011-08-17 19:33:06 +0200 | [diff] [blame] | 220 | endif |
Harald Welte | 47945f0 | 2011-08-20 13:00:37 +0200 | [diff] [blame] | 221 | |
| 222 | MOSTLYCLEANFILES = $(DX_CLEAN) |