mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 21:40:52 -05:00 
			
		
		
		
	
		
			
	
	
		
			279 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
		
		
			
		
	
	
			279 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| 
								 | 
							
								#! /bin/bash
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# copyright John Maddock 2003
							 | 
						||
| 
								 | 
							
								# Distributed under the Boost Software License, Version 1.0. 
							 | 
						||
| 
								 | 
							
								# (See accompanying file LICENSE_1_0.txt or copy at 
							 | 
						||
| 
								 | 
							
								# http://www.boost.org/LICENSE_1_0.txt.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								libname=""
							 | 
						||
| 
								 | 
							
								src=""
							 | 
						||
| 
								 | 
							
								header=""
							 | 
						||
| 
								 | 
							
								all_dep=""
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# current makefile:
							 | 
						||
| 
								 | 
							
								out=""
							 | 
						||
| 
								 | 
							
								# temporary file:
							 | 
						||
| 
								 | 
							
								tout=""
							 | 
						||
| 
								 | 
							
								# install target temp file:
							 | 
						||
| 
								 | 
							
								iout=""
							 | 
						||
| 
								 | 
							
								# debug flag:
							 | 
						||
| 
								 | 
							
								debug="no"
							 | 
						||
| 
								 | 
							
								# compile options:
							 | 
						||
| 
								 | 
							
								opts=""
							 | 
						||
| 
								 | 
							
								# main output sub-directory:
							 | 
						||
| 
								 | 
							
								subdir=""
							 | 
						||
| 
								 | 
							
								# vcl flag:
							 | 
						||
| 
								 | 
							
								use_vcl="yes"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								###############################################################
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# gcc generator section:
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								###############################################################
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								gcc_shared="no"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function gcc_gen_lib()
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									if test "$gcc_shared" == "yes"; then
							 | 
						||
| 
								 | 
							
										obj_dir="$libname""_shared"
							 | 
						||
| 
								 | 
							
										all_dep="$all_dep $subdir $subdir/$obj_dir ./$subdir/lib$libname.so"
							 | 
						||
| 
								 | 
							
									else
							 | 
						||
| 
								 | 
							
										obj_dir="$libname"
							 | 
						||
| 
								 | 
							
										all_dep="$all_dep $subdir $subdir/$obj_dir ./$subdir/lib$libname.a"
							 | 
						||
| 
								 | 
							
									fi
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# set up section comments:
							 | 
						||
| 
								 | 
							
									cat >> $tout << EOF
							 | 
						||
| 
								 | 
							
								########################################################
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# section for lib$libname.a
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								########################################################
							 | 
						||
| 
								 | 
							
								EOF
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								#	process source files:
							 | 
						||
| 
								 | 
							
									all_obj=""
							 | 
						||
| 
								 | 
							
									for file in $src
							 | 
						||
| 
								 | 
							
									do
							 | 
						||
| 
								 | 
							
										obj=`echo "$file" | sed 's/.*src\/\(.*\)cpp/\1o/g'`
							 | 
						||
| 
								 | 
							
										obj="$subdir/$obj_dir/$obj"
							 | 
						||
| 
								 | 
							
										all_obj="$all_obj $obj"
							 | 
						||
| 
								 | 
							
										echo "$obj: $file \$(ALL_HEADER)" >> $tout
							 | 
						||
| 
								 | 
							
										echo "	\$(CXX) \$(INCLUDES) -o $obj $opts \$(CXXFLAGS) \$(ICU_CXXFLAGS) $file" >> $tout
							 | 
						||
| 
								 | 
							
										echo "" >> $tout
							 | 
						||
| 
								 | 
							
									done
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								#	 now for the directories for this library:
							 | 
						||
| 
								 | 
							
									echo "$subdir/$obj_dir : " >> $tout
							 | 
						||
| 
								 | 
							
									echo "	mkdir -p $subdir/$obj_dir" >> $tout
							 | 
						||
| 
								 | 
							
									echo "" >> $tout
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								#	 now for the clean options for this library:
							 | 
						||
| 
								 | 
							
									all_clean="$all_clean $libname""_clean"
							 | 
						||
| 
								 | 
							
									echo "$libname"_clean : >> $tout
							 | 
						||
| 
								 | 
							
									echo "	rm -f $subdir/$obj_dir/*.o" >> $tout
							 | 
						||
| 
								 | 
							
									echo "" >> $tout
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								#	 now for the main target for this library:
							 | 
						||
| 
								 | 
							
								          if test "$gcc_shared" == "yes"; then
							 | 
						||
| 
								 | 
							
										echo ./$subdir/lib$libname.so : $all_obj >> $tout
							 | 
						||
| 
								 | 
							
										echo "	\$(LINKER) -o $subdir/lib$libname.so \$(LDFLAGS)  \$(ICU_LDFLAGS) $all_obj \$(ICU_LIBS) \$(LIBS)" >> $tout
							 | 
						||
| 
								 | 
							
									else
							 | 
						||
| 
								 | 
							
										echo ./$subdir/lib$libname.a : $all_obj >> $tout
							 | 
						||
| 
								 | 
							
										echo "	ar -r $subdir/lib$libname.a $all_obj" >> $tout
							 | 
						||
| 
								 | 
							
										echo "	-ar -s $subdir/lib$libname.a" >> $tout
							 | 
						||
| 
								 | 
							
									fi
							 | 
						||
| 
								 | 
							
									echo "" >> $tout
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function gcc_gen()
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									out="gcc.mak"
							 | 
						||
| 
								 | 
							
									tout="temp"
							 | 
						||
| 
								 | 
							
									iout="temp_install"
							 | 
						||
| 
								 | 
							
									subdir="gcc"
							 | 
						||
| 
								 | 
							
									all_dep=""
							 | 
						||
| 
								 | 
							
									all_clean=""
							 | 
						||
| 
								 | 
							
									echo > $out
							 | 
						||
| 
								 | 
							
									echo > $tout
							 | 
						||
| 
								 | 
							
									echo > $iout
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									libname="boost_regex-gcc-${boost_version}"
							 | 
						||
| 
								 | 
							
									opts="\$(C1)"
							 | 
						||
| 
								 | 
							
									gcc_gen_lib
							 | 
						||
| 
								 | 
							
									libname="boost_regex-gcc-d-${boost_version}"
							 | 
						||
| 
								 | 
							
									opts="\$(C2)"
							 | 
						||
| 
								 | 
							
									gcc_gen_lib
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									cat > $out << EOF
							 | 
						||
| 
								 | 
							
								# copyright John Maddock 2006-7
							 | 
						||
| 
								 | 
							
								# Distributed under the Boost Software License, Version 1.0. 
							 | 
						||
| 
								 | 
							
								# (See accompanying file LICENSE_1_0.txt or copy at 
							 | 
						||
| 
								 | 
							
								# http://www.boost.org/LICENSE_1_0.txt.
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# auto generated makefile for gcc compiler
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# usage:
							 | 
						||
| 
								 | 
							
								# make
							 | 
						||
| 
								 | 
							
								#   brings libraries up to date
							 | 
						||
| 
								 | 
							
								# make clean
							 | 
						||
| 
								 | 
							
								#   deletes temporary object files (but not archives).
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# the following environment variables are recognised:
							 | 
						||
| 
								 | 
							
								# ICU_PATH= Path to ICU installation.
							 | 
						||
| 
								 | 
							
								# CXXFLAGS= extra compiler options - note applies to all build variants
							 | 
						||
| 
								 | 
							
								# INCLUDES= additional include directories
							 | 
						||
| 
								 | 
							
								# LDFLAGS=  additional linker options
							 | 
						||
| 
								 | 
							
								# LIBS=     additional library files
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# compiler:
							 | 
						||
| 
								 | 
							
								CXX?=g++
							 | 
						||
| 
								 | 
							
								LINKER=\$(CXX) -shared
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# compiler options for release build:
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								C1=-c -O2 -I../../..
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# compiler options for debug build:
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								C2=-c -g -I../../..
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								ifeq "\$(ICU_PATH)" ""
							 | 
						||
| 
								 | 
							
								\$(warning "Building Boost.Regex without ICU / Unicode support:")
							 | 
						||
| 
								 | 
							
								\$(warning "Hint: set ICU_PATH on the nmake command line to point ")
							 | 
						||
| 
								 | 
							
								\$(warning "to your ICU installation if you have one.")
							 | 
						||
| 
								 | 
							
								else
							 | 
						||
| 
								 | 
							
								ICU_CXXFLAGS= -DBOOST_HAS_ICU=1 -I\$(ICU_PATH)/include
							 | 
						||
| 
								 | 
							
								ICU_LDFLAGS= -L\$(ICU_PATH)/lib
							 | 
						||
| 
								 | 
							
								ICU_LIBS= -licui18n -licuuc
							 | 
						||
| 
								 | 
							
								\$(warning "Building Boost.Regex with ICU in \$(ICU_PATH)")
							 | 
						||
| 
								 | 
							
								endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								EOF
							 | 
						||
| 
								 | 
							
									echo "" >> $out
							 | 
						||
| 
								 | 
							
									echo "ALL_HEADER=$header" >> $out
							 | 
						||
| 
								 | 
							
									echo "" >> $out
							 | 
						||
| 
								 | 
							
									echo "all : $subdir $all_dep" >> $out
							 | 
						||
| 
								 | 
							
									echo >> $out
							 | 
						||
| 
								 | 
							
									echo "$subdir :" >> $out
							 | 
						||
| 
								 | 
							
									echo "	mkdir -p $subdir" >> $out
							 | 
						||
| 
								 | 
							
									echo >> $out
							 | 
						||
| 
								 | 
							
									echo "clean : $all_clean" >> $out
							 | 
						||
| 
								 | 
							
									echo >> $out
							 | 
						||
| 
								 | 
							
									echo "install : all" >> $out
							 | 
						||
| 
								 | 
							
									cat $iout >> $out
							 | 
						||
| 
								 | 
							
									echo >> $out
							 | 
						||
| 
								 | 
							
									cat $tout >> $out
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function gcc_gen_shared()
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									out="gcc-shared.mak"
							 | 
						||
| 
								 | 
							
									tout="temp"
							 | 
						||
| 
								 | 
							
									iout="temp_install"
							 | 
						||
| 
								 | 
							
									subdir="gcc"
							 | 
						||
| 
								 | 
							
									all_dep=""
							 | 
						||
| 
								 | 
							
									all_clean=""
							 | 
						||
| 
								 | 
							
									echo > $out
							 | 
						||
| 
								 | 
							
									echo > $tout
							 | 
						||
| 
								 | 
							
									echo > $iout
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									libname="boost_regex-gcc-${boost_version}"
							 | 
						||
| 
								 | 
							
									opts="\$(C1)"
							 | 
						||
| 
								 | 
							
									gcc_gen_lib
							 | 
						||
| 
								 | 
							
									libname="boost_regex-gcc-d-${boost_version}"
							 | 
						||
| 
								 | 
							
									opts="\$(C2)"
							 | 
						||
| 
								 | 
							
									gcc_gen_lib
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									cat > $out << EOF
							 | 
						||
| 
								 | 
							
								# copyright John Maddock 2006-7
							 | 
						||
| 
								 | 
							
								# Distributed under the Boost Software License, Version 1.0. 
							 | 
						||
| 
								 | 
							
								# (See accompanying file LICENSE_1_0.txt or copy at 
							 | 
						||
| 
								 | 
							
								# http://www.boost.org/LICENSE_1_0.txt.
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# auto generated makefile for gcc compiler
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# usage:
							 | 
						||
| 
								 | 
							
								# make
							 | 
						||
| 
								 | 
							
								#   brings libraries up to date
							 | 
						||
| 
								 | 
							
								# make clean
							 | 
						||
| 
								 | 
							
								#   deletes temporary object files (but not archives).
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# the following environment variables are recognised:
							 | 
						||
| 
								 | 
							
								# ICU_PATH= Path to ICU installation.
							 | 
						||
| 
								 | 
							
								# CXXFLAGS= extra compiler options - note applies to all build variants
							 | 
						||
| 
								 | 
							
								# INCLUDES= additional include directories
							 | 
						||
| 
								 | 
							
								# LDFLAGS=  additional linker options
							 | 
						||
| 
								 | 
							
								# LIBS=     additional library files
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# compiler:
							 | 
						||
| 
								 | 
							
								CXX?=g++
							 | 
						||
| 
								 | 
							
								LINKER=\$(CXX) -shared
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# compiler options for release build:
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								C1=-c -O2 -I../../.. -fPIC
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# compiler options for debug build:
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								C2=-c -g -I../../.. -fPIC
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								ifeq "\$(ICU_PATH)" ""
							 | 
						||
| 
								 | 
							
								\$(warning "Building Boost.Regex without ICU / Unicode support:")
							 | 
						||
| 
								 | 
							
								\$(warning "Hint: set ICU_PATH on the nmake command line to point ")
							 | 
						||
| 
								 | 
							
								\$(warning "to your ICU installation if you have one.")
							 | 
						||
| 
								 | 
							
								else
							 | 
						||
| 
								 | 
							
								ICU_CXXFLAGS= -DBOOST_HAS_ICU=1 -I\$(ICU_PATH)/include
							 | 
						||
| 
								 | 
							
								ICU_LDFLAGS= -L\$(ICU_PATH)/lib
							 | 
						||
| 
								 | 
							
								ICU_LIBS= -licui18n -licuuc
							 | 
						||
| 
								 | 
							
								\$(warning "Building Boost.Regex with ICU in \$(ICU_PATH)")
							 | 
						||
| 
								 | 
							
								endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								EOF
							 | 
						||
| 
								 | 
							
									echo "" >> $out
							 | 
						||
| 
								 | 
							
									echo "ALL_HEADER=$header" >> $out
							 | 
						||
| 
								 | 
							
									echo "" >> $out
							 | 
						||
| 
								 | 
							
									echo "all : $subdir $all_dep" >> $out
							 | 
						||
| 
								 | 
							
									echo >> $out
							 | 
						||
| 
								 | 
							
									echo "$subdir :" >> $out
							 | 
						||
| 
								 | 
							
									echo "	mkdir -p $subdir" >> $out
							 | 
						||
| 
								 | 
							
									echo >> $out
							 | 
						||
| 
								 | 
							
									echo "clean : $all_clean" >> $out
							 | 
						||
| 
								 | 
							
									echo >> $out
							 | 
						||
| 
								 | 
							
									echo "install : all" >> $out
							 | 
						||
| 
								 | 
							
									cat $iout >> $out
							 | 
						||
| 
								 | 
							
									echo >> $out
							 | 
						||
| 
								 | 
							
									cat $tout >> $out
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# locate source files:
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								. common.sh
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# generate gcc makefile:
							 | 
						||
| 
								 | 
							
								gcc_gen
							 | 
						||
| 
								 | 
							
								gcc_shared="yes"
							 | 
						||
| 
								 | 
							
								gcc_gen_shared
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# remove tmep files;
							 | 
						||
| 
								 | 
							
								rm -f $tout $iout
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 |