using C reaper with musl-gcc
authorRalph Ronnquist <ralph.ronnquist@gmail.com>
Wed, 30 Mar 2022 21:50:25 +0000 (08:50 +1100)
committerRalph Ronnquist <ralph.ronnquist@gmail.com>
Wed, 30 Mar 2022 21:50:25 +0000 (08:50 +1100)
Makefile
debian/control
src/Makefile

index 4b77ede4132024b6d1a1d7bef748aabbaeacfc70..8636bf667f8d5fa1e2b2687974e62f55d45ee5e5 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,50 +1,65 @@
 SBINDIR = $(DESTDIR)/usr/sbin
-ETCDIR = $(DESTDIR)/etc/rrqnet
-MAN1DIR = $(DESTDIR)/usr/share/man/man1
+#ETCDIR = $(DESTDIR)/etc/overlay
+#MAN1DIR = $(DESTDIR)/usr/share/man/man1
 MAN8DIR = $(DESTDIR)/usr/share/man/man8
 VARLIBDIR = $(DESTDIR)/var/lib/overlay-boot
 
-SBINCFILES =
+#SBINCFILES =
 #SBINFILES = overlay-boot overlay-go overlay-stop
-ETCFILES =
-MAN1FILES = 
+# The SBINFILES are installed via links; see debian/overlay-boot.links
+#ETCFILES =
+#MAN1FILES = 
 MAN8FILES = overlay-boot.8 overlay-go.8 overlay-stop.8
-HTMLDOC = $(MAN8FILES:%=%.html)
+#HTMLDOC = $(MAN8FILES:%=%.html)
 VARLIBFILES = overlay-boot overlay-go overlay-stop functions reaper
 VARLIBFILES += overlay-init overlay-postmount overlay-premount
 
-all: asm/reaper
+# The default is to build asm/reaper
+REAPER = src/reaper
+all: $(REAPER)
 
-asm/reaper: 
-       $(MAKE) -C asm reaper
+# Specific rule: $(REAPER) is ensured by "recursive make"
+$(REAPER): 
+       $(MAKE) -C $$(dirname $(REAPER)) reaper
 
-overlay-boot.8: README.adoc
-       a2x -d manpage -f manpage $^
-
-$(addprefix $(MAN8DIR)/,$(MAN8FILES)): overlay-boot.8 | $(MAN8DIR)/
-       cp $< $@
+# Specific rule: the reaper program originates from $(REAPER)
+reaper: $(REAPER)
+       cp -p $< $@
 
-$(MAN8DIR)/ $(VARLIBDIR)/:
+# Generic rule: any dependee directory needs to be created
+%/:
        mkdir -p $@
 
-reaper: asm/reaper
-       cp -p $< $@
+# Generic rule: a local .8 file depends on the same .8.adoc file, if any
+$(MAN8FILES): %: %.adoc
+       a2x -d manpage -f manpage $^
+
+# Generic rule: an installed MAN8FILE file depends on a local the
+# same, and that the installation directory exists
+$(addprefix $(MAN8DIR)/,$(MAN8FILES)): $(MAN8DIR)/%: % | $(MAN8DIR)/
+       cp $< $@
 
+# Generic rule: an installed VARLIBFILES file depends on a local the
+# same, and that the installation directory exists
 $(addprefix $(VARLIBDIR)/,$(VARLIBFILES)): $(VARLIBDIR)/%: % | $(VARLIBDIR)/
        cp -p $< $@
 
+# Make target: to clean up this workspace
 clean:
-       rm -f reaper overlay-boot.8 asm/reaper
+       rm -f reaper overlay-boot.8
+       make -C $$(dirname $(REAPER)) clean
        dh_clean -d
 
-INSTALLTARGETS = $(addprefix $(SBINDIR)/,$(SBINFILES))
-INSTALLTARGETS += $(addprefix $(ETCDIR)/,$(ETCFILES))
-INSTALLTARGETS += $(addprefix $(MAN1DIR)/,$(MAN1FILES))
+# Make target: enumerates that which should be installed
+#INSTALLTARGETS = $(addprefix $(SBINDIR)/,$(SBINFILES))
+#INSTALLTARGETS += $(addprefix $(ETCDIR)/,$(ETCFILES))
+#INSTALLTARGETS += $(addprefix $(MAN1DIR)/,$(MAN1FILES))
 INSTALLTARGETS += $(addprefix $(MAN8DIR)/,$(MAN8FILES))
 INSTALLTARGETS += $(addprefix $(VARLIBDIR)/,$(VARLIBFILES))
-
 install: $(INSTALLTARGETS)
 
+# Make target: make a .deb file in ../
 BUILDPACKAGE = -us -uc --build=full -Iolle
 deb:
-       PREFIX= INCLUDE_PREFIX=/usr dpkg-buildpackage $(BUILDPACKAGE)
+       dpkg-buildpackage $(BUILDPACKAGE)
+#      PREFIX= INCLUDE_PREFIX=/usr
index 20c0c210f0a60b9ee8aedf3cc6be5a1be41743c9..ae3ce67301e4655813b744a1eeaaf808087996b7 100644 (file)
@@ -4,7 +4,7 @@ Priority: optional
 Maintainer: Ralph Ronnquist <ralph.ronnquist@gmail.com>
 Build-Depends: debhelper-compat (= 13),
  asciidoc, docbook-xml, libxslt1-dev, xsltproc, docbook-xsl,
- fasm
+ musl-tools
 Standards-Version: 4.6.0
 Homepage: https://borta.rrq.id.au/git?p=ralph/overlay-boot.git
 Vcs-Git: https://borta.rrq.id.au/git?p=ralph/overlay-boot.git
index 7567e7b84d920198faeb146e5dbf23697e2dfedc..275275e2566936ff886d2f6f481e0a5825765b04 100644 (file)
@@ -8,6 +8,7 @@ CFLAGS = -Wall -static -O3 -flto
 
 reaper: reaper.c
        $(CC) $(CFLAGS) -o $@ $^
+       strip $@
 
 clean:
        rm -f reaper