# Copyright 2015 Luke Shumaker . # # This is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # The GNU General Public License's references to "object code" and # "executables" are to be interpreted to also include the output of # any document formatting or typesetting system, including # intermediate and printed output. # # This software is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public # License along with this manual; if not, see # . MAKEFLAGS += --no-builtin-rules prefix = /usr/local bindir = $(prefix)/bin libdir = $(prefix)/lib systemddir = $(libdir)/systemd Q ?= @ #NET ?= FORCE user = nshd group = nshd CFLAGS = -std=c99 -Wall -Wextra -Werror -pedantic CGO_CFLAGS = $(CFLAGS) -Wno-unused-parameter CGO_ENABLED = 1 deps += gopkg.in/yaml.v2 deps += lukeshu.com/git/go/libgnulinux.git deps += lukeshu.com/git/go/libnslcd.git deps += lukeshu.com/git/go/libsystemd.git srcdir := $(abspath $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST))))) topdir := $(srcdir) subdirs = src/lukeshu.com/git/go/libnslcd.git/proto generate += $(addprefix $(topdir)/src/,$(deps)) generate += $(topdir)/LICENSE.lgpl-2.1.txt $(topdir)/LICENSE.gpl-2.txt $(topdir)/LICENSE.apache-2.0.txt generate_secondary += $(topdir)/src/*.*/ build += $(topdir)/bin/nshd $(topdir)/nshd.service $(topdir)/nshd.socket $(topdir)/test/runner build_secondary += $(topdir)/bin $(topdir)/pkg $(topdir)/test/*.o .var.* install += $(addprefix $(DESTDIR),$(bindir)/nshd $(systemddir)/system/nshd.socket $(systemddir)/system/nshd.service) ifeq (1,$(words $(MAKEFILE_LIST))) include $(topdir)/common.mk endif src/lukeshu.com/git/go/libnslcd.git/proto/Makefile: $(topdir)/src/lukeshu.com/git/go/libnslcd.git $(topdir)/LICENSE.lgpl-2.1.txt: $(NET) curl https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt > $@ $(topdir)/LICENSE.gpl-2.txt: $(NET) curl https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt > $@ $(topdir)/LICENSE.apache-2.0.txt: $(NET) curl https://www.apache.org/licenses/LICENSE-2.0 > $@ $(topdir)/LICENSE.wtfpl-2.txt: $(NET) curl http://www.wtfpl.net/txt/copying/ > $@ include $(topdir)/golang.mk $(call goget,$(topdir),$(deps)) $(topdir)/bin/nshd: $(generate) $(configure) $(call gosrc,$(topdir)) $(call goinstall,$(topdir),nshd) %.o: %.c .var.CC .var.CPPFLAGS .var.CFLAGS $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $(filter-out .var.%,$^) %: %.o .var.CC .var.LDFLAGS .var.LOADLIBES .var.LDLIBS $(CC) $(LDFLAGS) -o $@ $(filter-out .var.%,$^) $(LOADLIBES) $(LDLIBS) %: %.in < $< sed $(foreach v,$(patsubst .var.%,%,$(filter .var.%,$^)), -e 's|@$v@|$($v)|g' ) > $@ $(topdir)/nshd.service: .var.bindir .var.user .var.group $(topdir)/nshd.socket: .var.user .var.group $(DESTDIR)$(bindir)/%: bin/% install -TDm755 $< $@ $(DESTDIR)$(systemddir)/system/%.socket: %.socket install -TDm644 $< $@ $(DESTDIR)$(systemddir)/system/%.service: %.service install -TDm644 $< $@