configure: Pull enhancements over from Non-DAW.
This commit is contained in:
parent
cc96a2bb2b
commit
de54a267f3
53
Makefile
53
Makefile
|
@ -9,19 +9,24 @@
|
||||||
|
|
||||||
VERSION := 1.9.2
|
VERSION := 1.9.2
|
||||||
|
|
||||||
all: make.conf non-sequencer
|
all: .config non-sequencer
|
||||||
|
|
||||||
make.conf: configure
|
.config: configure
|
||||||
@ ./configure
|
@ ./configure
|
||||||
|
|
||||||
config:
|
config:
|
||||||
@ ./configure
|
@ ./configure
|
||||||
|
|
||||||
-include make.conf
|
-include .config
|
||||||
|
|
||||||
SYSTEM_PATH=$(prefix)/share/non-sequencer/
|
SYSTEM_PATH=$(prefix)/share/non-sequencer/
|
||||||
DOCUMENT_PATH=$(prefix)/share/doc/non-sequencer/
|
DOCUMENT_PATH=$(prefix)/share/doc/non-sequencer/
|
||||||
|
|
||||||
|
# a bit of a hack to make sure this runs before any rules
|
||||||
|
ifneq ($(CALCULATING),yes)
|
||||||
|
TOTAL := $(shell $(MAKE) CALCULATING=yes -n 2>/dev/null | sed -n 's/^.*Compiling: \([^"]\+\)"/\1/p' > .files )
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(USE_DEBUG),yes)
|
ifeq ($(USE_DEBUG),yes)
|
||||||
CXXFLAGS := -pipe -ggdb -Wall -Wextra -Wnon-virtual-dtor -Wno-missing-field-initializers -O0 -fno-rtti -fno-exceptions
|
CXXFLAGS := -pipe -ggdb -Wall -Wextra -Wnon-virtual-dtor -Wno-missing-field-initializers -O0 -fno-rtti -fno-exceptions
|
||||||
else
|
else
|
||||||
|
@ -44,31 +49,11 @@ endif
|
||||||
# uncomment this line to print each playback event to the console (not RT safe)
|
# uncomment this line to print each playback event to the console (not RT safe)
|
||||||
# CXXFLAGS+= -DDEBUG_EVENTS
|
# CXXFLAGS+= -DDEBUG_EVENTS
|
||||||
|
|
||||||
SRCS= \
|
SRCS:=$(wildcard *.C gui/*.fl gui/*.C)
|
||||||
canvas.C \
|
|
||||||
debug.C \
|
|
||||||
event.C \
|
|
||||||
event_list.C \
|
|
||||||
grid.C \
|
|
||||||
gui/draw.C \
|
|
||||||
gui/event_edit.C \
|
|
||||||
gui/input.C \
|
|
||||||
gui/ui.C \
|
|
||||||
gui/widgets.C \
|
|
||||||
instrument.C \
|
|
||||||
jack.C \
|
|
||||||
lash.C \
|
|
||||||
main.C \
|
|
||||||
mapping.C \
|
|
||||||
midievent.C \
|
|
||||||
pattern.C \
|
|
||||||
phrase.C \
|
|
||||||
scale.C \
|
|
||||||
sequence.C \
|
|
||||||
smf.C \
|
|
||||||
transport.C
|
|
||||||
|
|
||||||
OBJS=$(SRCS:.C=.o)
|
SRCS:=$(SRCS:.fl=.C)
|
||||||
|
SRCS:=$(sort $(SRCS))
|
||||||
|
OBJS:=$(SRCS:.C=.o)
|
||||||
|
|
||||||
.PHONEY: all clean install dist valgrind config
|
.PHONEY: all clean install dist valgrind config
|
||||||
|
|
||||||
|
@ -81,14 +66,20 @@ valgrind:
|
||||||
|
|
||||||
include scripts/colors
|
include scripts/colors
|
||||||
|
|
||||||
|
ifneq ($(CALCULATING),yes)
|
||||||
|
COMPILING="$(BOLD)$(BLACK)[$(SGR0)$(CYAN)`scripts/percent-complete .files "$<"`$(SGR0)$(BOLD)$(BLACK)]$(SGR0) Compiling: $(BOLD)$(YELLOW)$<$(SGR0)"
|
||||||
|
else
|
||||||
|
COMPILING="Compiling: $<"
|
||||||
|
endif
|
||||||
|
|
||||||
.C.o:
|
.C.o:
|
||||||
@ echo "Compiling: $(BOLD)$(YELLOW)$<$(SGR0)"
|
@ echo $(COMPILING)
|
||||||
@ $(CXX) $(CXXFLAGS) -c $< -o $@
|
@ $(CXX) $(CXXFLAGS) -c $< -o $@
|
||||||
|
|
||||||
%.C : %.fl
|
%.C : %.fl
|
||||||
@ cd `dirname $<` && fluid -c ../$<
|
@ cd `dirname $<` && fluid -c ../$<
|
||||||
|
|
||||||
$(OBJS): make.conf
|
$(OBJS): .config
|
||||||
|
|
||||||
DONE:=$(BOLD)$(GREEN)done$(SGR0)
|
DONE:=$(BOLD)$(GREEN)done$(SGR0)
|
||||||
|
|
||||||
|
@ -118,8 +109,8 @@ dist:
|
||||||
TAGS: $(SRCS)
|
TAGS: $(SRCS)
|
||||||
etags $(SRCS)
|
etags $(SRCS)
|
||||||
|
|
||||||
makedepend: make.conf $(SRCS)
|
.deps: .config $(SRCS)
|
||||||
@ echo -n Calculating dependencies...
|
@ echo -n Calculating dependencies...
|
||||||
@ makedepend -f- -- $(CXXFLAGS) -- $(SRCS) > makedepend 2>/dev/null && echo "$(DONE)"
|
@ makedepend -f- -- $(CXXFLAGS) $(INCLUDES) -- $(SRCS) > makedepend 2>/dev/null && echo $(DONE)
|
||||||
|
|
||||||
-include makedepend
|
-include makedepend
|
||||||
|
|
|
@ -9,9 +9,9 @@ begin
|
||||||
|
|
||||||
begin_options
|
begin_options
|
||||||
|
|
||||||
ask "Install prefix?" prefix /usr/local
|
ask "Installation prefix" prefix /usr/local
|
||||||
ask "Require LASH?" USE_LASH yes
|
ask "Use the LASH Audio Session Handler" USE_LASH yes
|
||||||
ask "Build for debugging?" USE_DEBUG no
|
ask "Build for debugging" USE_DEBUG no
|
||||||
|
|
||||||
begin_tests
|
begin_tests
|
||||||
|
|
||||||
|
|
|
@ -7,25 +7,94 @@
|
||||||
|
|
||||||
# support functions for 'configure' scripts.
|
# support functions for 'configure' scripts.
|
||||||
|
|
||||||
|
|
||||||
fatal ()
|
fatal ()
|
||||||
{
|
{
|
||||||
echo "$BOLD$RED$*$SGR0" > /dev/stderr
|
echo "$BOLD$RED$*$SGR0" > /dev/stderr
|
||||||
exit 255
|
exit 255
|
||||||
}
|
}
|
||||||
|
|
||||||
[ $# -gt 0 ] && fatal "This is not an autoconf script. Run it without any options and you will be prompted."
|
UPDATE=no
|
||||||
|
HELP=no
|
||||||
|
|
||||||
|
split ()
|
||||||
|
{
|
||||||
|
while [ $# -gt 0 ]
|
||||||
|
do
|
||||||
|
echo $1
|
||||||
|
shift 1
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ $# -gt 0 ]
|
||||||
|
then
|
||||||
|
case "$1" in
|
||||||
|
--update)
|
||||||
|
UPDATE=yes
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
--help)
|
||||||
|
HELP=yes
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# fatal "This is not an autoconf script. Run it without any options and you will be prompted."
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ $# -gt 0 ]
|
||||||
|
then
|
||||||
|
echo "## options" > .config
|
||||||
|
|
||||||
|
split "$@" | sed '
|
||||||
|
s/--\(enable\|disable\)-\([^ =]\+\)/--\1-\U\2/g;
|
||||||
|
s/--enable-\([^ =]\+\)=\(.*\)/USE_\1=\2/g;
|
||||||
|
s/--enable-\([^ =]\+\)/USE_\1=yes/g;
|
||||||
|
s/--disable-\([^ =]\+\)/USE_\1=no/g;
|
||||||
|
s/--\([^ =]\+\)/\1/g;
|
||||||
|
' | sed -n '/^[^ =]\+=./p' >> .config
|
||||||
|
UPDATE=yes;
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HELP != yes ] && [ $UPDATE != yes ]
|
||||||
|
then
|
||||||
|
if ! ( [ -t 0 ] && [ -t 1 ] )
|
||||||
|
then
|
||||||
|
fatal "not a terminal!"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
ask ()
|
ask ()
|
||||||
{
|
{
|
||||||
local A D
|
local A D O
|
||||||
|
|
||||||
D="`eval echo \\$$2`"
|
D="`eval echo \\$$2`"
|
||||||
D=${D:-$3}
|
D=${D:-$3}
|
||||||
|
|
||||||
echo -n "$BLACK$BOLD::$SGR0 $1 [$BOLD${D}$SGR0] "
|
if [ $HELP = yes ]
|
||||||
|
then
|
||||||
|
if [ "$3" = yes ] || [ "$3" = no ]
|
||||||
|
then
|
||||||
|
O=`echo -n "$2" | sed s/^USE_/--enable-/ | tr '[[:upper:]]' '[[:lower:]]'`
|
||||||
|
else
|
||||||
|
O=`echo -n "--$2" | tr '[[:upper:]]' '[[:lower:]]'`
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf " ${BOLD}${GREEN}%-15s${SGR0}\t%-40s (currently: ${BOLD}%s${SGR0})\n" "$O" "$1" "$D"
|
||||||
|
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -n "$BLACK$BOLD::$SGR0 ${1}? [$BOLD${D}$SGR0] "
|
||||||
|
|
||||||
|
if [ $UPDATE = yes ]
|
||||||
|
then
|
||||||
|
A="$D"
|
||||||
|
echo
|
||||||
|
else
|
||||||
read A
|
read A
|
||||||
A=${A:-$D}
|
A=${A:-$D}
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "$3" = yes ] || [ "$3" = no ]
|
if [ "$3" = yes ] || [ "$3" = no ]
|
||||||
then
|
then
|
||||||
|
@ -41,13 +110,13 @@ ask ()
|
||||||
|
|
||||||
ok ()
|
ok ()
|
||||||
{
|
{
|
||||||
echo "$BOLD${GREEN}ok${SGR0}"
|
echo -e '\r'`tput cuf 30`"$BOLD${GREEN}ok${SGR0} ${*:+${BOLD}${BLACK}($*)${SGR0}}"
|
||||||
}
|
}
|
||||||
|
|
||||||
failed ()
|
failed ()
|
||||||
{
|
{
|
||||||
echo "$BOLD${RED}failed!${SGR0}" > /dev/stderr
|
echo "$BOLD${RED}failed!${SGR0}" > /dev/stderr
|
||||||
rm -f make.conf
|
rm -f .config
|
||||||
}
|
}
|
||||||
|
|
||||||
using ()
|
using ()
|
||||||
|
@ -66,7 +135,7 @@ extract_options ()
|
||||||
{
|
{
|
||||||
local line name value
|
local line name value
|
||||||
|
|
||||||
if [ -f make.conf ]
|
if [ -f .config ]
|
||||||
then
|
then
|
||||||
{
|
{
|
||||||
while read line
|
while read line
|
||||||
|
@ -85,7 +154,7 @@ extract_options ()
|
||||||
eval "$name='$value'"
|
eval "$name='$value'"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
} < make.conf
|
} < .config
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,36 +162,69 @@ begin ()
|
||||||
{
|
{
|
||||||
echo -n "Checking sanity..."
|
echo -n "Checking sanity..."
|
||||||
require_command pkg-config pkg-config > /dev/null
|
require_command pkg-config pkg-config > /dev/null
|
||||||
|
require_command sed sed > /dev/null
|
||||||
ok
|
ok
|
||||||
}
|
}
|
||||||
|
|
||||||
|
warn ()
|
||||||
|
{
|
||||||
|
echo " ${BOLD}${YELLOW}* ${SGR0}$*"
|
||||||
|
}
|
||||||
|
|
||||||
|
info ()
|
||||||
|
{
|
||||||
|
echo "${BOLD}${CYAN}--- ${SGR0}$*"
|
||||||
|
}
|
||||||
|
|
||||||
begin_options ()
|
begin_options ()
|
||||||
{
|
{
|
||||||
# get the old values
|
# get the old values
|
||||||
extract_options
|
extract_options
|
||||||
|
|
||||||
echo > make.conf
|
if [ $HELP = yes ]
|
||||||
|
then
|
||||||
|
echo
|
||||||
|
warn "This is a ${BOLD}non-configure${SGR0} script. Run without any arguments and you will be prompted"
|
||||||
|
warn "with configuration choices. Alternatively, you may use the following autoconf style"
|
||||||
|
warn "arguments for non-interactive configuration."
|
||||||
|
echo
|
||||||
|
echo " Available options:"
|
||||||
|
echo
|
||||||
|
else
|
||||||
|
echo > .config
|
||||||
append "# This file was automatically generated on `date`. Any changes may be lost!"
|
append "# This file was automatically generated on `date`. Any changes may be lost!"
|
||||||
append "## options"
|
append "## options"
|
||||||
|
|
||||||
echo "--- Configuration required ---"
|
if [ $UPDATE = yes ]
|
||||||
|
then
|
||||||
|
info "Updating configuration"
|
||||||
|
else
|
||||||
|
info "Configuration required"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
begin_tests ()
|
begin_tests ()
|
||||||
{
|
{
|
||||||
|
if [ $HELP = yes ]
|
||||||
|
then
|
||||||
|
echo
|
||||||
|
exit 0;
|
||||||
|
fi
|
||||||
|
|
||||||
append "## libs"
|
append "## libs"
|
||||||
extract_options
|
extract_options
|
||||||
}
|
}
|
||||||
|
|
||||||
append ()
|
append ()
|
||||||
{
|
{
|
||||||
echo "$1" >> make.conf
|
echo "$1" >> .config
|
||||||
}
|
}
|
||||||
|
|
||||||
end ()
|
end ()
|
||||||
{
|
{
|
||||||
echo "--- Configuration complete ---"
|
info "Configuration complete"
|
||||||
touch make.conf
|
touch .config
|
||||||
}
|
}
|
||||||
|
|
||||||
require_command ()
|
require_command ()
|
||||||
|
@ -157,7 +259,7 @@ require_package ()
|
||||||
append "${name}_LIBS=`pkg-config --libs $3`"
|
append "${name}_LIBS=`pkg-config --libs $3`"
|
||||||
append "${name}_CFLAGS=-DHAVE_${1} `pkg-config --cflags $3`"
|
append "${name}_CFLAGS=-DHAVE_${1} `pkg-config --cflags $3`"
|
||||||
|
|
||||||
ok
|
ok `pkg-config --modversion "$3"`
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -197,7 +299,7 @@ require_FLTK ()
|
||||||
failed
|
failed
|
||||||
fatal "The installed FLTK version ($FLTK_VERSION) is too old."
|
fatal "The installed FLTK version ($FLTK_VERSION) is too old."
|
||||||
else
|
else
|
||||||
ok
|
ok $FLTK_VERSION
|
||||||
fi
|
fi
|
||||||
|
|
||||||
use=
|
use=
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# May 2008 Jonathan Moore Liles
|
||||||
|
#
|
||||||
|
# Given the name of a file containing a list of files and a filename
|
||||||
|
# from that list, return the percentage of the distance from the
|
||||||
|
# beginning of the list.
|
||||||
|
|
||||||
|
[ $# -ne 2 ] && exit
|
||||||
|
|
||||||
|
MATCH="`grep -nFx \"$2\" \"$1\"`"
|
||||||
|
MATCH=${MATCH%%:*}
|
||||||
|
TOTAL="`cat \"$1\" | wc -l`"
|
||||||
|
|
||||||
|
if [ -z "$MATCH" ]
|
||||||
|
then
|
||||||
|
echo "0%"
|
||||||
|
else
|
||||||
|
printf "%3s%%" $(( $MATCH * 100 / $TOTAL ))
|
||||||
|
fi
|
Loading…
Reference in New Issue