mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 03:53:32 +01:00
145 lines
1.9 KiB
Bash
145 lines
1.9 KiB
Bash
#!/bin/bash
|
|
|
|
log()
|
|
{
|
|
echo $@
|
|
}
|
|
|
|
err()
|
|
{
|
|
log $@
|
|
}
|
|
|
|
fatal()
|
|
{
|
|
err $@
|
|
exit 1
|
|
}
|
|
|
|
usage()
|
|
{
|
|
echo "$myname [-h] [-s summary] [-d description] 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 = System/Libraries
|
|
subpackages = $subpackages
|
|
|
|
[pkg.required.jw]
|
|
run = ytools-run = VERSION
|
|
devel = $name-run = VERSION-REVISION, ytools-devel = VERSION
|
|
build = ytools-devel
|
|
EOT
|
|
}
|
|
|
|
# ---------------------- here we go
|
|
|
|
myname=`basename $0`
|
|
projdir=.
|
|
|
|
summary=
|
|
description=
|
|
subpackages="run devel"
|
|
|
|
eval set -- `getopt -- hd:s:p: "$@"`
|
|
|
|
while [ "$1" != -- ]; do
|
|
case $1 in
|
|
-d)
|
|
eval description=\"$2\"
|
|
shift;;
|
|
-s)
|
|
eval summary=\"$2\"
|
|
shift;;
|
|
-p)
|
|
eval subpackages=\"$2\"
|
|
shift;;
|
|
-h)
|
|
usage 0;;
|
|
*)
|
|
usage 1;;
|
|
esac
|
|
shift
|
|
done
|
|
shift
|
|
|
|
[ -z "$description" ] && description="$summary"
|
|
[ -z "$summary" ] && summary="$description"
|
|
|
|
[ -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
|
|
|