cpp-d1064d mbuild_1.0-0
authorMichael Wagner <michael@wagnertech.de>
Wed, 20 Jan 2021 16:00:08 +0000 (17:00 +0100)
committerMichael Wagner <michael@wagnertech.de>
Wed, 20 Jan 2021 16:00:08 +0000 (17:00 +0100)
debian/mbuild.changelog
debian/mbuild.cp
doc/mbuild.8
tools/make/cmake_check
tools/make/mconfigure
tools/make/rules

index 0b08a5c..dde0f6b 100644 (file)
@@ -1,6 +1,7 @@
 projects (1.0-%BUILD%) unstable; urgency=medium
   * prebuild in <paket>.build no longer supported
   * support of cmake builds
+  * standard copyright, README.build in deb packages
  -- Michael Wagner <michael@wagnertech.de>  Tue, 12 Jan 2021 22:54:48 +0100
   
 projects (0.6-%BUILD%) unstable; urgency=medium
index 47558c7..0babef4 100755 (executable)
@@ -13,6 +13,7 @@ cp tools/make/insert_build.sh $base/usr/share/mbuild/
 cp tools/make/mMakefile $base/usr/share/mbuild/makefile
 cp tools/make/c_configure.sh $base/usr/share/mbuild/
 cp tools/make/cpp.make $base/usr/share/mbuild/
+cp doc/copyright $base/usr/share/mbuild/
 
 mkdir -p $base/usr/share/man/man8
 gzip -c doc/mbuild.8 >$base/usr/share/man/man8/mbuild.8.gz
@@ -20,6 +21,5 @@ mkdir -p $base/usr/share/man/man1
 gzip -c doc/mconfigure.1 >$base/usr/share/man/man1/mconfigure.1.gz
 
 mkdir -p $base/usr/share/doc/mbuild
-cp doc/copyright $base/usr/share/doc/mbuild/
 cp debian/mbuild.changelog $base/usr/share/doc/mbuild/changelog
 
index 7b26cfc..1e38b45 100644 (file)
@@ -48,6 +48,12 @@ file are needed in the debian directory. If pre/post installation scripts
 are needed, these files must be also placed in the
 .B debian 
 directory.
+.br
+A standard copyright file is included. An user defined file can be used by copying it to debian/copyright
+in the PAKET.prepare script.
+.br
+A standard README.debian file is included. An user defined file can be used by copying it to debian/README.debian
+in the PAKET.prepare script.
 .SH FILES
 .TP
 PAKET.changelog
index aa85d8c..22f6eb4 100755 (executable)
@@ -3,6 +3,18 @@ set -e
 cd ../build
 if [ -e debian/$paket.cmake ]
 then
+       # do checks
+       if [ -e debian/$paket.build ]
+       then
+               echo "cmake is not compatible with other builds. Remove $paket.build"
+               exit 1
+       fi
+       if [ -e debian/$paket.prebuild ]
+       then
+               echo "cmake is not compatible with other builds. Remove $paket.prebuild"
+               exit 2
+       fi
+       
        cp debian/$paket.cmake CMakeLists.txt
        echo "make" > debian/$paket.build
        chmod 755 debian/$paket.build
index 691825d..ec5d2a6 100755 (executable)
@@ -11,6 +11,26 @@ function echo_usage {
        echo "  -o : support old Debian 7 format"
 }
 
+function cmake_check {
+       pushd ../build >/dev/null
+               # do checks
+               if [ -e debian/$paket.build ]
+               then
+                       echo "cmake is not compatible with other builds. Remove $paket.build"
+                       exit 1
+               fi
+               if [ -e debian/$paket.prebuild ]
+               then
+                       echo "cmake is not compatible with other builds. Remove $paket.prebuild"
+                       exit 2
+               fi
+               
+               cp debian/$paket.cmake CMakeLists.txt
+               echo "make" > debian/$paket.build
+               chmod 755 debian/$paket.build
+               cmake .
+       popd >/dev/null
+}
 function check_unversioned {
        # has to be called in the projects base directory
        # result: "M" in stdout or nothing
@@ -55,8 +75,8 @@ function set_build {
                fi
                changes=$(check_unversioned)
                tag="$tag$changes"
-               version=${tag%-*}
-               version=${version##*_}
+               version=${tag##*_}
+               version=${version%%-*}
                build=${tag##*-}
        else
                echo "No configuration system found. Cannot determine version."
@@ -149,7 +169,7 @@ fi
 if [ $configure -eq 1 ]
 then
        # delete changelog and control
-       rm debian/changelog debian/control 2>/dev/null || true
+       rm debian/changelog debian/control debian/README.debian debian/copyright 2>/dev/null || true
        
        # mconfigure builds 2 environment files: setenv.sh + rules.pre
        echo "" > debian/rules.pre
@@ -214,6 +234,12 @@ then
                    echo "add_inst_tgt += debian/tmp/DEBIAN/postrm" >> rules.pre
        fi
        
+       # check for README.debian
+       if [ -f $paket.README.debian ]
+       then
+                   cp $paket.README.debian README.debian
+       fi
+       
        mkdir -p tmp/DEBIAN
 
        # add export to setenv.sh
@@ -238,12 +264,8 @@ then
                . debian/setenv.sh
                debian/$paket.prepare
        fi
-       if [ -e debian/$paket.cmake ]
-       then
-               # trigger build
-               touch debian/$paket.build
-       fi              
-       if [ -e debian/$paket.build ]
+       # .build or .cmake
+       if [ -x debian/$paket.build -o -e debian/$paket.cmake ]
        then
                if [ -e ../build ]
                then
@@ -256,9 +278,24 @@ then
                        exit 2
                fi
                # sync build dir
-#              . debian/setenv.sh
-#              debian/rules sync
-               
+               . debian/setenv.sh
+               debian/rules sync
+       fi
+       # .build
+       if [ -x debian/$paket.build ]
+       then
+               if [ -x debian/$paket.prebuild ]
+               then
+                       pushd ../build >/dev/null
+                               . debian/setenv.sh
+                               debian/$paket.prebuild
+                       popd >/dev/null
+               fi
+       fi
+       # .cmake
+       if [ -e debian/$paket.cmake ]
+       then
+               cmake_check
        fi
        
        # pack prepare
@@ -281,16 +318,16 @@ then
        fi
 fi
 
-if [ $compile -eq 1 -a ! -e debian/$paket.build ]
-then
-       echo "no debian/$paket.build: skipping build step"
-       compile=0
-fi
 if [ $compile -eq 1 ]
 then
-       # build package 
-       . debian/setenv.sh
-       debian/rules build
+       if [ -x debian/$paket.build -o -e debian/$paket.cmake ]
+       then
+               # build package 
+               . debian/setenv.sh
+               debian/rules build
+       else
+               echo "skipping build step ..."
+       fi
 fi
 
 if [ $pack -eq 1 ]
index 8c57576..b1c3630 100755 (executable)
@@ -6,7 +6,8 @@
 NOP = @echo "No operation for target $@"
 DEB = fakeroot dpkg-deb --build $(oldpack) debian/tmp
 INSERT_BUILD = /usr/share/mbuild/insert_build.sh
-RSYNC_OPT = -av --exclude="build" --exclude="debian/tmp" --exclude="Packages" --exclude=".*"
+RSYNC_OPT = -av --exclude="build" --exclude="debian/tmp" --exclude="Packages" --exclude="*Aktuell" --exclude=".*"
+std_inst_tgt = debian/tmp/usr/share/doc/$(paket)/copyright debian/tmp/usr/share/doc/$(paket)/README.debian
 
 include debian/rules.pre
 
@@ -18,7 +19,7 @@ clean:
        -rm -rf debian/tmp
 
 # Bauen der kompilierten Programme und formatierten Dokumente aus den Quellen im Bauverzeichnis
-build: debian/$(paket).build prebuild
+build: ../build/debian/$(paket).build
        cd ../build ; debian/$(paket).build
        # Build succeeded
 
@@ -43,8 +44,6 @@ binary-arch: $(BINARY_ARCH)
 # Erstellen Architektur-unabhängiger (Architecture: all) Binärpakete im übergeordneten Verzeichnis
 binary-indep: $(BINARY_INDEP)
 
-#copy ../$(paket)_$(version)-$(build)_all.deb
-
 version: ~/build/$(TARGET)
        $(INSERT_BUILD) ~/build/$(TARGET) $(build)
        cp ~/build/*$(build)* ../
@@ -55,17 +54,10 @@ version: ~/build/$(TARGET)
 sync: ../build
        rsync $(RSYNC_OPT) ./ ../build/
 
-../build/cmake_check:
-       /usr/share/mbuild/cmake_check
-       touch ../build/cmake_check
-
-prebuild: sync ../build/cmake_check
-       cd ../build ; if [ -x debian/$(paket).prebuild ]; then debian/$(paket).prebuild; fi
-
 copy: debian/$(paket).cp
        debian/$(paket).cp debian/tmp
 
-../$(paket)_$(version)-$(build)_$(arch).deb:debian/tmp/DEBIAN/control $(add_inst_tgt)
+../$(paket)_$(version)-$(build)_$(arch).deb:debian/tmp/DEBIAN/control $(std_inst_tgt) $(add_inst_tgt)
        $(DEB)
        mv debian/tmp.deb ../$(paket)_$(version)-$(build)_$(arch).deb
 
@@ -77,10 +69,14 @@ debian/control: debian/$(paket).control
 
 debian/changelog: debian/$(paket).changelog debian/rules.pre
        sed "s/%BUILD%/$(build)/" debian/$(paket).changelog > debian/changelog
-#      echo "${pwd} (${build}) unstable; urgency=medium" > debian/changelog
-#      echo "  * generated by mbuild" >> debian/changelog
-#      echo " -- Michael Wagner <info@wagnertech.de>  Sun, 11 Feb 2018 20:03:04 +0100" >> debian/changelog
-#      mb_create_changelog
+
+debian/tmp/usr/share/doc/$(paket)/copyright: debian/copyright
+       mkdir -p debian/tmp/usr/share/doc/$(paket)
+       cp debian/copyright debian/tmp/usr/share/doc/$(paket)/copyright
+
+debian/tmp/usr/share/doc/$(paket)/README.debian: debian/README.debian
+       mkdir -p debian/tmp/usr/share/doc/$(paket)
+       cp debian/README.debian debian/tmp/usr/share/doc/$(paket)/README.debian
 
 debian/tmp/DEBIAN/preinst: debian/$(paket).preinst
        cp debian/$(paket).preinst debian/tmp/DEBIAN/preinst
@@ -94,10 +90,15 @@ debian/tmp/DEBIAN/prerm: debian/$(paket).prerm
 debian/tmp/DEBIAN/postrm: debian/$(paket).postrm
        cp debian/$(paket).postrm debian/tmp/DEBIAN/postrm
 
+debian/README.debian:
+       echo "developed under:" > debian/README.debian
+       cat /etc/issue >> debian/README.debian
+       echo "Architecture: $(arch)" >> debian/README.debian
+
+debian/copyright:
+       cp /usr/share/mbuild/copyright debian/copyright
+
 # Load project specification
 -include rules.post
 
-# if debian/control is missing, try old mbuild way
-#debian/control:
-#      if [ -e  debian/$(paket).control ]; then echo "trallala"; fi