mirror of
				https://github.com/cookiengineer/audacity
				synced 2025-10-31 14:13:50 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			116 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			116 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| #
 | |
| # This script builds the 2 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 2 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 
 | |
|       GCC=gcc
 | |
|       if [ -e "${GCC}-${GCC_VERSION}" ]
 | |
|       then
 | |
|          GCC="${GCC}-${GCC_VERSION}"
 | |
|       fi
 | |
|       
 | |
|       echo "Building ${target} using ${GCC}"
 | |
| 
 | |
|       "${GCC}" -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}/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}"
 | |
|     
 | |
|    # Get rid of the existing config.h options
 | |
|    echo >config.h
 | |
|     
 | |
|    # Build the 2 standard plugins
 | |
|    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}/Audacity.app/Contents/plug-ins"
 | |
|       buildAction
 | |
|    ;;
 | |
| 
 | |
|    install)
 | |
|       TARGET_BUILD_DIR="${DSTROOT}/Audacity.app/Contents/plug-ins"
 | |
|       installAction
 | |
|    ;;
 | |
| 
 | |
|    clean)
 | |
|       TARGET_BUILD_DIR="${TARGET_BUILD_DIR}/Audacity.app/Contents/plug-ins"
 | |
|       cleanAction
 | |
|    ;;
 | |
| esac
 | |
| 
 | |
| exit
 |