170 lines
2.2 KiB
Bash
170 lines
2.2 KiB
Bash
|
|
#!/bin/bash
|
||
|
|||
log()
|
|||
{
|
|||
echo $@
|
|||
}
|
|||
|
|||
err()
|
|||
{
|
|||
log $@
|
|||
}
|
|||
|
|||
fatal()
|
|||
{
|
|||
err $@
|
|||
exit 1
|
|||
}
|
|||
|
|||
usage()
|
|||
{
|
|||
echo "$myname [-h] [-s summary] [-d description] [-g pkg-group] name"
|
|||
|
|
[ "$1" ] && exit $1
|
||
}
|
|||
|
|||
cat_Makefile()
|
|||
{
|
|||
cat <<-EOT
|
|||
TOPDIR = .
|
|||
|
|||
include \$(TOPDIR)/make/proj.mk
|
|||
include \$(MODDIR)/make/topdir.mk
|
|||
EOT
|
|||
}
|
|||
|
|||
cat_VERSION()
|
|||
{
|
|||
cat <<-EOT
|
|||
1.0.0-0-dev
|
|||
EOT
|
|||
}
|
|||
|
|||
cat_make_Makefile()
|
|||
{
|
|||
cat <<-EOT
|
|||
TOPDIR = ..
|
|||
|
|||
include \$(TOPDIR)/make/proj.mk
|
|||
include \$(MODDIR)/make/make.mk
|
|||
EOT
|
|||
}
|
|||
|
|||
cat_make_proj_mk()
|
|||
{
|
|||
cat <<-EOT
|
|||
# to be included from inside the project directory
|
|||
|
|||
CVS_PROJ_DIR ?= \$(TOPDIR)/..
|
|||
|
|||
ifeq (\$(TARGET),mingw)
|
|||
FLAVOUR_PATH_PREFIX = win32/
|
|||
endif
|
|||
MODDIR = \$(firstword \$(wildcard \$(CVS_PROJ_DIR)/ytools /opt/\$(FLAVOUR_PATH_PREFIX)ytools))
|
|||
|
|||
USE_PROJECT_LIB = false
|
|||
HDRDIR_SCOPE_SUFFIX = \$(PROJECT)
|
|||
EOT
|
|||
}
|
|||
|
|||
cat_make_project_conf()
|
|||
{
|
|||
cat <<-EOT
|
|||
[summary]
|
|||
$summary
|
|||
|
|||
[description]
|
|||
$description
|
|||
|
|||
[global]
|
|||
group = "$pkg_group"
|
|||
|
|
subpackages = $subpackages
|
||
|
|||
|
project.conf: Renamed pkg.required to pkg.required.jw
Signed-off-by: Jan Lindemann <jan@janware.com>
|
[pkg.required.jw]
|
||
|
|
run = ytools-run = VERSION
|
||
devel = $name-run = VERSION-REVISION, ytools-devel = VERSION
|
|||
build = ytools-devel
|
|||
EOT
|
|||
}
|
|||
|
|||
cat_gitignore()
|
|||
{
|
|||
cat <<-EOT
|
|||
*.done
|
|||
*.dep.mk
|
|||
*.o
|
|||
*.so.*
|
|||
*.so
|
|||
*.a
|
|||
*.rep
|
|||
ld-*.conf
|
|||
*.ldscript
|
|||
*.pc
|
|||
$name
|
|||
*_generated_*
|
|||
*.secret
|
|||
|
|
local.mk
|
||
EOT
|
|||
}
|
|||
|
|||
|
|
# ---------------------- here we go
|
||
|
|||
myname=`basename $0`
|
|||
projdir=.
|
|||
|
|||
summary=
|
|||
description=
|
|||
subpackages="run devel"
|
|||
|
|||
eval set -- `getopt -- hd:s:p:g: "$@"`
|
|||
|
|
|
||
while [ "$1" != -- ]; do
|
|||
case $1 in
|
|||
-d)
|
|||
eval description=\"$2\"
|
|||
shift;;
|
|||
-s)
|
|||
eval summary=\"$2\"
|
|||
shift;;
|
|||
-p)
|
|||
eval subpackages=\"$2\"
|
|||
shift;;
|
|||
-g)
|
|||
eval pkg_group=\"$2\"
|
|||
shift;;
|
|||
|
|
-h)
|
||
|
|
usage 0;;
|
||
|
|
*)
|
||
|
|
usage 1;;
|
||
|
|
esac
|
||
shift
|
|||
done
|
|||
shift
|
|||
|
|||
[ -z "$description" ] && description="$summary"
|
|||
[ -z "$summary" ] && summary="$description"
|
|||
[ -z "$pkg_group" ] && pkg_group="Amusements/Teaching/Other"
|
|||
|
|
|
||
[ -f $projdir/Makefile ] || {
|
|||
fatal "$projdir doesn't contain a Makefile"
|
|||
}
|
|||
|
|||
name="$1"
|
|||
|
|||
[ -d $projdir/$name ] && {
|
|||
fatal "$projdir/$name already exists"
|
|||
}
|
|||
|
|||
set -ex
|
|||
|
|||
mkdir -p $projdir
|
|||
mkdir $name
|
|||
cd $projdir/$name
|
|||
|
|||
mkdir make
|
|||
cat_Makefile > Makefile
|
|||
cat_make_Makefile > make/Makefile
|
|||
cat_VERSION > VERSION
|
|||
cat_make_proj_mk > make/proj.mk
|
|||
cat_make_project_conf > make/project.conf
|
|||
cat_gitignore > .gitignore
|
|||
|
|
|