1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-06-16 08:09:32 +02:00

1) Fixes a problem where you can't run Audacity from withing Xcode

which was caused by the fix for Lame and FFmpeg detection.  Now,
    the Audacity.sh script will only be used for "release" versions.
2)  Provides a new "Manual" target that the developer can use to
    retrieve the Audacity manual and put it in the "help" directory
    to facilitate testing.
3)  Provides a new "Plugins" target that the developer can use to
    build the 3 Ladspa plugins that are distributed with Audacity.
    They will be built into the "plug-in" directory.  The main
    reason for this one was because no one could remember how to
    build them, so now it will be available to everyone.
4)  Supports the "install" build action for creating an output
    direcotry that is fully distributable.  (DMG and ZIP creation
    will be added soon.)  This provides the ability for anyone
    to create Mac releases.
This commit is contained in:
lllucius 2011-03-12 21:24:12 +00:00
parent d12c5622d8
commit c576fc4893
5 changed files with 654 additions and 255 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
<plist version="0.9">
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
@ -27,7 +26,6 @@
<key>LSIsAppleDefaultForType</key>
<true/>
</dict>
<dict>
<key>CFBundleTypeName</key>
<string>WAV Audio File</string>
@ -53,7 +51,6 @@
<key>CFBundleTypeRole</key>
<string>Editor</string>
</dict>
<dict>
<key>CFBundleTypeName</key>
<string>AIFF Audio File</string>
@ -78,7 +75,6 @@
<key>CFBundleTypeRole</key>
<string>Editor</string>
</dict>
<dict>
<key>CFBundleTypeName</key>
<string>AU Audio File</string>
@ -101,7 +97,6 @@
<key>CFBundleTypeRole</key>
<string>Editor</string>
</dict>
<dict>
<key>CFBundleTypeName</key>
<string>MP3 Audio File</string>
@ -134,7 +129,6 @@
<key>CFBundleTypeRole</key>
<string>Editor</string>
</dict>
<dict>
<key>CFBundleTypeName</key>
<string>Ogg Vorbis Audio File</string>
@ -165,7 +159,6 @@
<key>CFBundleTypeRole</key>
<string>Editor</string>
</dict>
<dict>
<key>CFBundleTypeName</key>
<string>FLAC Audio File</string>
@ -187,7 +180,6 @@
<key>CFBundleTypeRole</key>
<string>Editor</string>
</dict>
<dict>
<key>CFBundleTypeName</key>
<string>MPEG-4 Audio File</string>
@ -207,9 +199,7 @@
<key>CFBundleTypeRole</key>
<string>Editor</string>
</dict>
</array>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleIdentifier</key>
@ -217,7 +207,7 @@
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>Audacity.sh</string>
<string>AUDACITY_EXECUTABLE</string>
<key>CFBundleIconFile</key>
<string>Audacity.icns</string>
<key>CFBundleName</key>
@ -237,7 +227,7 @@
<key>NSHumanReadableCopyright</key>
<string>Audacity version AUDACITY_VERSION.AUDACITY_RELEASE.AUDACITY_REVISION.AUDACITY_MODLEVEL</string>
<key>LSRequiresCarbon</key>
<true/>
<true/>
<key>CSResourcesFileMapped</key>
<true/>
</dict>

2
mac/Install.txt Normal file
View File

@ -0,0 +1,2 @@
To install Audacity, copy the Audacity folder to /Applications
or any other location of your choosing.

61
mac/build_manual.sh Executable file
View File

@ -0,0 +1,61 @@
#!/bin/sh
#
# This script retrieves and build the Audacity manual
#
function cleanAction
{
[ -d "${TARGET_TEMP_DIR}" ] && rm -rf "${TARGET_TEMP_DIR}"
[ -d "${TOPLEVEL}/help/manual" ] && rm -r "${TOPLEVEL}/help/manual"
rm -rf "${TARGET_BUILD_DIR}"
}
function buildAction
{
# Retrieve the manual
if [ ! -d "${TOPLEVEL}/help/manual" ]
then
cd "${TOPLEVEL}/scripts/mw2html_audacity"
./wiki2htm.sh
cd "${SRCROOT}"
fi
# Create the destination directory if it's not already there
if [ ! -d "${TARGET_BUILD_DIR}" ]
then
mkdir -p "${TARGET_BUILD_DIR}"
chmod -RH "${INSTALL_MODE_FLAG}" "${TARGET_BUILD_DIR}"
chown -RH "${INSTALL_OWNER}:${INSTALL_GROUP}" "${TARGET_BUILD_DIR}"
fi
# Copy the manual to the destination
cp -pPR "${TOPLEVEL}/help/manual/" "${TARGET_BUILD_DIR}"
# Remove svn files
find "${TARGET_BUILD_DIR}" -name .svn -print0 | xargs -0 rm -rf
}
function installAction
{
# Just do the build to put things where the belong
buildAction
}
case "${ACTION}" in
"" | build)
TARGET_BUILD_DIR="${TARGET_BUILD_DIR}/help/manual"
buildAction
;;
install)
TARGET_BUILD_DIR="${DSTROOT}/Audacity/help/manual"
installAction
;;
clean)
TARGET_BUILD_DIR="${TARGET_BUILD_DIR}/help/manual"
cleanAction
;;
esac
exit

127
mac/build_plugins.sh Executable file
View File

@ -0,0 +1,127 @@
#!/bin/sh
#
# This script builds the 3 plugins that are included in the Audacity
# distribution.
#
# Since we do not include the plugin source as part of Audacity, we
# must retrieve it first, followed by configure. However, we do not
# use the constructed Makefile since we only need 3 of the plugins and
# it is not universal binary friendly.
#
# In addition, each plugin has an initialization routine that must be
# executed before the plugin can be used. The plugin distribution does
# not provide support for this on OSX so, by default, the initialization
# routine never gets executed.
#
# Therefore, we assign the constructor attribute to the initialization
# routine which causes the routine to be executed as soon as the plugin
# is loaded.
#
# Set to the URL to the plugins source distribution
swhdist="http://plugin.org.uk/releases/0.4.15/swh-plugins-0.4.15.tar.gz"
# Set to base directory within the above distribution
swhpath="./swh-plugins-0.4.15"
#
# Builds an individual plugin
#
function build
{
# Get the plugin name
target="$1"
shift
# Create the destination directory if it's not already there
if [ ! -d "${TARGET_BUILD_DIR}" ]
then
mkdir -p "${TARGET_BUILD_DIR}"
chmod -RH "${INSTALL_MODE_FLAG}" "${TARGET_BUILD_DIR}"
chown -RH "${INSTALL_OWNER}:${INSTALL_GROUP}" "${TARGET_BUILD_DIR}"
fi
# Build the plugin if it doesn't exist
if [ ! -e "${TARGET_BUILD_DIR}/${target}.so" ]
then
echo "Building ${target}"
gcc-"${GCC_VERSION}" -bundle -arch ${ARCHS/ / -arch } \
-mmacosx-version-min="${MACOSX_DEPLOYMENT_TARGET}" -isysroot "${SDKROOT}" \
-O3 -fomit-frame-pointer -fstrength-reduce -funroll-loops -ffast-math \
"-D_init=__attribute__ ((constructor)) _${target}_init" \
-o "${TARGET_BUILD_DIR}/${target}.so" ${*}
fi
}
function cleanAction
{
[ -d "${TARGET_TEMP_DIR}" ] && rm -rf "${TARGET_TEMP_DIR}"
rm -f "${TARGET_BUILD_DIR}/gverb_1216.so"
rm -f "${TARGET_BUILD_DIR}/hard_limiter_1413.so"
rm -f "${TARGET_BUILD_DIR}/sc4_1882.so"
}
function buildAction
{
# Create the temp directory
mkdir -p "${TARGET_TEMP_DIR}"
cd "${TARGET_TEMP_DIR}"
# Get the distribution
if [ ! -e "${swhpath}" ]
then
echo "Retrieving plugins"
ftp -o '|tar xf -' "${swhdist}"
fi
# Get to where we need to be
cd "${swhpath}"
# We won't be using fftw, but configure won't complete without it, so just
# create a dummy pkg-config file.
export PKG_CONFIG_PATH="."
cat <<EOF >fftw3f.pc
Name: FFTW
Description: dummy for pkg-config
Version: 3.0.0
Libs:
Cflags:
EOF
# Run configure
if [ ! -e "config.status" ]
then
echo "Configuring plugins"
./configure --disable-dependency-tracking --enable-shared --disable-static >/dev/null 2>&1
fi
# Build the 3 standard plugins
build gverb_1216 gverb_1216.c gverb/gverb.c gverb/gverbdsp.c
build hard_limiter_1413 hard_limiter_1413.c
build sc4_1882 sc4_1882.c util/db.c util/rms.c
}
function installAction
{
# Just do the build to put things where the belong
buildAction
}
case "${ACTION}" in
"" | build)
TARGET_BUILD_DIR="${TARGET_BUILD_DIR}/plug-ins"
buildAction
;;
install)
TARGET_BUILD_DIR="${DSTROOT}/Audacity/plug-ins"
installAction
;;
clean)
TARGET_BUILD_DIR="${TARGET_BUILD_DIR}/plug-ins"
cleanAction
;;
esac
exit