jw-pkg/scripts/jw-build-create-project.sh
Jan Lindemann bd8a028431 jw-build-create-project.sh: Add janware-create-project.sh
Signed-off-by: Jan Lindemann <jan@janware.com>
2016-09-02 13:42:58 +00:00

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]
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