LICENSES: add the BSD 3-clause "New" or "Revised" License
[fw/openocd] / Makefile.am
1 # not a GNU package. You can remove this line, if
2 # have all needed files, that a GNU package needs
3 AUTOMAKE_OPTIONS = gnu 1.6
4
5 # make sure we pass the correct jimtcl flags to distcheck
6 DISTCHECK_CONFIGURE_FLAGS = --disable-install-jim
7
8 # do not run Jim Tcl tests (esp. during distcheck)
9 check-recursive: SUBDIRS :=
10
11 nobase_dist_pkgdata_DATA = \
12         contrib/libdcc/dcc_stdio.c \
13         contrib/libdcc/dcc_stdio.h \
14         contrib/libdcc/example.c \
15         contrib/libdcc/README \
16         contrib/60-openocd.rules
17
18 SUBDIRS =
19 DIST_SUBDIRS =
20 bin_PROGRAMS =
21 noinst_LTLIBRARIES =
22 info_TEXINFOS =
23 dist_man_MANS =
24 EXTRA_DIST =
25
26 if INTERNAL_JIMTCL
27 SUBDIRS += jimtcl
28 DIST_SUBDIRS += jimtcl
29 endif
30
31 # common flags used in openocd build
32 AM_CFLAGS = $(GCC_WARNINGS)
33
34 AM_CPPFLAGS = $(HOST_CPPFLAGS)\
35                           -I$(top_srcdir)/src \
36                           -I$(top_builddir)/src \
37                           -I$(top_srcdir)/src/helper \
38                           -DPKGDATADIR=\"$(pkgdatadir)\" \
39                           -DBINDIR=\"$(bindir)\"
40
41 if INTERNAL_JIMTCL
42 AM_CPPFLAGS += -I$(top_srcdir)/jimtcl \
43                            -I$(top_builddir)/jimtcl
44 endif
45 EXTRA_DIST += \
46         BUGS \
47         HACKING \
48         NEWTAPS \
49         README.Windows \
50         README.macOS \
51         $(EXTRA_DIST_NEWS) \
52         Doxyfile.in \
53         LICENSES/preferred/BSD-2-Clause \
54         LICENSES/preferred/BSD-3-Clause \
55         LICENSES/preferred/GFDL-1.2 \
56         LICENSES/preferred/gfdl-1.2.texi.readme \
57         LICENSES/preferred/GPL-2.0 \
58         LICENSES/stand-alone/GPL-3.0 \
59         tools/logger.pl \
60         tools/rlink_make_speed_table \
61         tools/st7_dtc_as \
62         contrib
63
64 libtool: $(LIBTOOL_DEPS)
65         $(SHELL) ./config.status --recheck
66
67 docs: pdf html doxygen
68
69 Doxyfile: $(srcdir)/Doxyfile.in
70         @echo "Creating $@ from $<..."
71         @( \
72           echo "### @@@ -= DO NOT EDIT THIS FILE =- @@@ ###" && \
73           echo "### @@@ Make changes to Doxyfile.in @@@ ###" && \
74           sed -e 's,@srcdir\@,$(srcdir),' \
75             -e 's,@builddir\@,$(builddir),' \
76             -e 's,@doxygen_as_html\@,$(doxygen_as_html),' \
77             -e 's,@doxygen_as_pdf\@,$(doxygen_as_pdf),' $< \
78         ) > $@
79
80 THE_MANUAL = doxygen/latex/refman.pdf
81
82 doxygen::
83         $(MAKE) Doxyfile
84         doxygen Doxyfile 2>&1 | perl $(srcdir)/tools/logger.pl > doxygen.log
85         @if [ -f doxygen/latex/refman.tex ]; then \
86                 echo "Creating $(THE_MANUAL)..."; \
87                 $(MAKE) $(THE_MANUAL); \
88         else \
89                 echo "Skipping Doxygen PDF..."; \
90         fi
91
92 $(THE_MANUAL): %.pdf: %.tex
93         -cd $$(dirname $*) && pdflatex $$(basename $*)
94         -cd $$(dirname $*) && pdflatex $$(basename $*)
95
96 TCL_PATH = tcl
97 # command to find paths of script files, relative to TCL_PATH
98 TCL_FILES = find $(srcdir)/$(TCL_PATH) -name '*.cfg' -o -name '*.tcl' -o -name '*.txt' | \
99                 sed -e 's,^$(srcdir)/$(TCL_PATH),,'
100
101 dist-hook:
102         if test -d $(srcdir)/.git -a \( ! -e $(distdir)/ChangeLog -o -w $(distdir)/ChangeLog \) ; then \
103                 git --git-dir $(srcdir)/.git log | $(srcdir)/tools/git2cl/git2cl > $(distdir)/ChangeLog ; \
104         fi
105         for i in $$($(TCL_FILES)); do \
106                 j="$(distdir)/$(TCL_PATH)/$$i" && \
107                 mkdir -p "$$(dirname $$j)" && \
108                 $(INSTALL_DATA) $(srcdir)/$(TCL_PATH)/$$i $$j; \
109         done
110
111 install-data-hook:
112         for i in $$($(TCL_FILES)); do \
113                 j="$(DESTDIR)$(pkgdatadir)/scripts/$$i" && \
114                 mkdir -p "$$(dirname $$j)" && \
115                 $(INSTALL_DATA) $(srcdir)/$(TCL_PATH)/$$i $$j; \
116         done
117
118 uninstall-hook:
119         rm -rf $(DESTDIR)$(pkgdatadir)/scripts
120
121 distclean-local:
122         rm -rf Doxyfile doxygen
123         rm -f $(srcdir)/jimtcl/configure.gnu
124 # FIXME: workaround for jimtcl 0.80 only. Remove from jimtcl 0.81
125         rm -f jimtcl/examples.api/Makefile
126
127 DISTCLEANFILES = doxygen.log
128
129 METASOURCES = AUTO
130
131 BUILT_SOURCES =
132 CLEANFILES =
133
134 MAINTAINERCLEANFILES = \
135         %D%/INSTALL \
136         %D%/configure \
137         %D%/Makefile.in \
138         %D%/depcomp \
139         %D%/config.guess \
140         %D%/config.sub \
141         %D%/config.h.in \
142         %D%/config.h.in~ \
143         %D%/compile \
144         %D%/ltmain.sh \
145         %D%/missing \
146         %D%/aclocal.m4 \
147         %D%/install-sh \
148         %D%/texinfo.tex
149
150 include src/Makefile.am
151 include doc/Makefile.am