# # ***** BEGIN LICENSE BLOCK ***** # # Copyright (C) 2009-2016 Olof Hagsand and Benny Holmgren # Copyright (C) 2017-2019 Olof Hagsand # Copyright (C) 2020 Olof Hagsand and Rubicon Communications, LLC(Netgate) # # This file is part of CLIXON # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # Alternatively, the contents of this file may be used under the terms of # the GNU General Public License Version 3 or later (the "GPL"), # in which case the provisions of the GPL are applicable instead # of those above. If you wish to allow use of your version of this file only # under the terms of the GPL, and not to allow others to # use your version of this file under the terms of Apache License version 2, # indicate your decision by deleting the provisions above and replace them with # the notice and other provisions required by the GPL. If you do not delete # the provisions above, a recipient may use your version of this file under # the terms of any one of the Apache License version 2 or the GPL. # # ***** END LICENSE BLOCK ***** # prefix = @prefix@ exec_prefix = @exec_prefix@ # abs_top_builddir is by default the absolute path of the builddir. includedir = @includedir@ datadir = @datarootdir@ localstatedir = @localstatedir@ sysconfdir = @sysconfdir@ VPATH = @srcdir@ srcdir = @srcdir@ libdir = @libdir@ top_srcdir = @top_srcdir@ CC = @CC@ CFLAGS = @CFLAGS@ LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ INSTALL = @INSTALL@ INCLUDES = -I. -I@srcdir@ @INCLUDES@ SHELL = /bin/sh SUBDIRS1 = include lib SUBDIRS2 = apps etc yang # without include lib for circular dependency SUBDIRS= $(SUBDIRS1) $(SUBDIRS2) .PHONY: doc example all clean depend $(SUBDIRS) install loc TAGS .config.status docker test all: $(SUBDIRS2) # May cause circular include->include,lib $(SUBDIRS2): include lib # Cannot build app before lib (for parallel make -j) (cd $@ && $(MAKE) $(MFLAGS) all) $(SUBDIRS1): (cd $@ && $(MAKE) $(MFLAGS) all) depend: for i in $(SUBDIRS) doc example docker; \ do (cd $$i && $(MAKE) $(MFLAGS) depend); done install: for i in $(SUBDIRS) doc; \ do (cd $$i; $(MAKE) $(MFLAGS) $@)||exit 1; done; $(MAKE) $(MFLAGS) install-include install-include: for i in $(SUBDIRS) doc; \ do (cd $$i && $(MAKE) $(MFLAGS) $@)||exit 1; done; echo "To install example app: cd example; make; make install" uninstall: for i in $(SUBDIRS) doc example docker; \ do (cd $$i && $(MAKE) $(MFLAGS) $@)||exit 1; done; doc: cd $@; $(MAKE) $(MFLAGS) $@ config.status: configure $(SHELL) config.status --recheck configure: configure.ac cd $(srcdir) && autoconf clean: for i in $(SUBDIRS) doc example docker; \ do (cd $$i && $(MAKE) $(MFLAGS) $@); done; distclean: rm -f Makefile TAGS config.status config.log *~ .depend rm -rf autom4te.cache build-root/rpmbuild rm -f build-root/*.tar.xz build-root/*.rpm extras/rpm/Makefile for i in $(SUBDIRS) doc example docker; \ do (cd $$i && $(MAKE) $(MFLAGS) $@); done export BR=$(CURDIR)/build-root $(BR)/scripts/.version: ifneq ("$(wildcard /etc/redhat-release)","") $(shell $(BR)/scripts/version rpm-string > $(BR)/scripts/.version) else $(shell $(BR)/scripts/version > $(BR)/scripts/.version) endif DIST_FILE = $(BR)/clixon-$(shell extras/scripts/version).tar DIST_SUBDIR = clixon-$(shell extras/scripts/version | cut -f1 -d-) dist: @if git rev-parse 2> /dev/null ; then \ git archive \ --prefix=$(DIST_SUBDIR)/ \ --format=tar \ -o $(DIST_FILE) \ HEAD ; \ git describe > $(BR)/.version ; \ else \ (cd .. ; tar -cf $(DIST_FILE) $(DIST_SUBDIR) --exclude=*.tar) ; \ extras/scripts/version > $(BR)/.version ; \ fi @tar --append \ --file $(DIST_FILE) \ --transform='s,.*/.version,$(DIST_SUBDIR)/extras/scripts/.version,' \ $(BR)/.version @$(RM) $(BR)/.version $(DIST_FILE).xz @xz -v --threads=0 $(DIST_FILE) @$(RM) $(BR)/clixon-latest.tar.xz @ln -rs $(DIST_FILE).xz $(BR)/clixon-latest.tar.xz pkg-rpm: dist make -C extras/rpm pkg-srpm: dist make -C extras/rpm srpm example: (cd $@ && $(MAKE) $(MFLAGS) all) # Run a clixon test container. # Alt: cd test; ./all.sh test: (cd docker && $(MAKE) $(MFLAGS) test) docker: for i in docker; \ do (cd $$i && $(MAKE) $(MFLAGS) $@); done # Lines of code loc: find . -name '*.[chyl]' -type f | xargs wc -l | tail -1 2> /dev/null TAGS: find $(srcdir) -name '*.[chyl]' -type f | grep -v \.tab\.[ch] | grep -v lex.*.c | grep -v .yy.c | etags -