From: <cod...@go...> - 2009-08-11 21:10:14
|
Revision: 397 Author: wol...@gm... Date: Tue Aug 11 14:09:42 2009 Log: zap autoconf/make build system, old interface generator (issue #3) http://code.google.com/p/hoc/source/detail?r=397 Deleted: /trunk/hoc/AppKit /trunk/hoc/Foundation /trunk/hoc/HOC/HOC.conf.in /trunk/hoc/HOC/Makefile.in /trunk/hoc/InterfaceGenerator /trunk/hoc/Makefile.in /trunk/hoc/Samples/Browser/Makefile /trunk/hoc/Samples/Editor/Makefile /trunk/hoc/Samples/ExpressionParser/Makefile /trunk/hoc/Samples/UniqSort/Makefile /trunk/hoc/Tests/Makefile /trunk/hoc/Tools/Makefile.in /trunk/hoc/aclocal.m4 /trunk/hoc/autogen.sh /trunk/hoc/autotools /trunk/hoc/config.mk.in /trunk/hoc/configure.ac /trunk/hoc/objc.m4 ======================================= --- /trunk/hoc/HOC/HOC.conf.in Sun Aug 24 21:31:51 2008 +++ /dev/null @@ -1,57 +0,0 @@ -name: HOC -maintainer: wol...@gm... -exposed: True - -exposed-modules: - HOC, - HOC.SelectorNameMangling, - HOC.Arguments, - HOC.FFICallInterface, - HOC.StdArgumentTypes, - HOC.TH, - HOC.DeclareClass, - HOC.ID, - HOC.Class, - HOC.DeclareSelector, - HOC.SelectorMarshaller, - HOC.Base, - HOC.NewlyAllocated, - HOC.Invocation, - HOC.MsgSend, - HOC.Utilities, - HOC.ExportClass, - HOC.NewClass, - HOC.Super, - HOC.CEnum, - HOC.NameCaseChange, - HOC.Dyld, - HOC.ExternConstants, - HOC.Exception, - HOC.ExternFunctions, - HOC.Unicode, - HOC.Selectors, - HOC.THDebug, - HOC.CannedCIFs - -hs-libraries: "HOC", "HOC_cbits" -depends: base, template-haskell, unix - -#if GNUSTEP -extra-libraries: "gnustep-base", "objc" PKG_EXTRA_LIBS -#else -extra-libraries: "objc" PKG_EXTRA_LIBS -frameworks: Foundation -#endif - -#if INPLACE -import-dirs: "../HOC/build/imports" -library-dirs: "../HOC" - "../HOC_cbits" - FOUNDATION_LIB_DIRS - FFI_LIB_DIRS -#else -import-dirs: GHC_LIB_PATH/HOC/imports -library-dirs: GHC_LIB_PATH/HOC - FOUNDATION_LIB_DIRS - FFI_LIB_DIRS -#endif ======================================= --- /trunk/hoc/HOC/Makefile.in Sun Aug 17 21:58:22 2008 +++ /dev/null @@ -1,105 +0,0 @@ -include ../config.mk - -dist_srcdir = HOC -dist_FILES = \ - HOC \ - HOC-gnustep.conf \ - HOC-gnustep.conf-inplace \ - HOC-macos.conf \ - HOC-macos.conf-inplace \ - HOC.hs \ - Makefile.in \ - $(NULL) - -ifeq "$(HocBuildDylibs)" "YES" -LIBRARIES=libHOC.a libHOC.dylib -else -LIBRARIES=libHOC.a HOC.o -endif - -FOUND_SOURCES := $(shell find . -name '*.hs') - -HOCLIBDIR="$(destdir)"/$(GHC_LIB_PATH)/HOC - -all: $(LIBRARIES) ../inplace.conf - -../inplace.conf: HOC.conf-inplace - [ -f "$@" ] || echo '[]' > $@ - $(GHC_PKG) update HOC.conf-inplace \ - --package-conf=../inplace.conf - -%.conf: %.conf.in - gcc -E -x c -DGHC_LIB_PATH=@GHC_LIB_PATH@ \ - -DFOUNDATION_LIB_DIRS=@HOC_FOUNDATION_LIB_DIRS@ \ - -DFFI_LIB_DIRS=@FFI_LIB_DIRS@ \ - -DPKG_EXTRA_LIBS=@PKG_EXTRA_LIBS@ \ - @HOC_DEFINES@ $< | grep -v '^#' > $@ -%.conf-inplace: %.conf.in - gcc -E -x c -DINPLACE=1 \ - -DGHC_LIB_PATH=@GHC_LIB_PATH@ \ - -DFOUNDATION_LIB_DIRS=@HOC_FOUNDATION_LIB_DIRS@ \ - -DFFI_LIB_DIRS=@FFI_LIB_DIRS@ \ - -DPKG_EXTRA_LIBS=@PKG_EXTRA_LIBS@ \ - @HOC_DEFINES@ $< | grep -v '^#' > $@ - -libHOC.a: ghcmake.build-stamp - find build/objects/ -name \*.o | xargs $(MAKE_STATIC_LIB) libHOC.a - -libHOC.dylib: ghcmake.build-stamp - find build/objects/ -name \*.o \ - | xargs libtool \ - -dynamic \ - $(FFI_LIBS) \ - -undefined dynamic_lookup \ - -single_module \ - -o $@ - install_name_tool -id "`pwd`/$@" $@ - -HOC.o: libHOC.a - ld -r -x -o HOC.o $(FFI_LIBS) $(ALL_LOAD) libHOC.a - -ghcmake: ghcmake.build-stamp - -ifeq "$(HocBuildDylibs)" "YES" -CBITS=-L../HOC_cbits -lHOC_cbits -else -CBITS=../HOC_cbits/HOC_cbits.o -endif - -ghcmake.build-stamp: $(FOUND_SOURCES) - mkdir -p build/objects - mkdir -p build/imports - $(GHC) --make HOC.hs \ - -O -fasm \ - -fPIC \ - -odir build/objects -hidir build/imports \ - -fglasgow-exts -fth \ - -lobjc \ - $(CBITS) \ - -I../HOC_cbits \ - $(FFI_CFLAGS) \ - $(FFI_LIBS) \ - -package-name HOC \ - -package unix \ - $(FOUNDATION_INCLUDES) \ - $(FOUNDATION_LIBS) \ - $(DEFINES) \ - $(EXTRA_GHCFLAGS) - touch $@ - -clean: - rm -rf libHOC.a HOC.o build \ - HOC/NewClass_stub.c HOC/NewClass_stub.h \ - ghcmake.build-stamp - -install: install-files - ranlib $(HOCLIBDIR)/libHOC.a -ifeq "$(HocBuildDylibs)" "YES" - install_name_tool -id $(HOCLIBDIR)/libHOC.dylib $(HOCLIBDIR)/libHOC.dylib -endif - $(GHC_PKG) update HOC.conf - -install-files: all HOC.conf - mkdir -p $(HOCLIBDIR) - cp -R $(LIBRARIES) build/imports \ - $(HOCLIBDIR) ======================================= --- /trunk/hoc/Makefile.in Sun Aug 17 21:58:22 2008 +++ /dev/null @@ -1,84 +0,0 @@ -include config.mk - -SUBDIRS = \ - HOC_cbits \ - HOC \ - InterfaceGenerator \ - InterfaceGenerator2 \ - Bindings \ - Foundation \ - AppKit \ - Tools \ - docs \ - $(NULL) - -Samples_SUBDIRS = \ - Samples/Browser \ - Samples/Editor \ - Samples/ExpressionParser \ - Samples/UniqSort \ - $(NULL) - -all_SUBDIRS = $(SUBDIRS) $(Samples_SUBDIRS) - -dist_srcdir = . -dist_FILES = \ - AUTHORS.txt \ - LICENSE \ - Makefile.in \ - README.txt \ - aclocal.m4 \ - autogen.sh \ - autotools \ - config.mk.in \ - configure \ - configure.ac \ - objc.m4 \ - $(NULL) - -installer_package_root = $(shell pwd)/installer-package/root - -all: hoc-all - -dist: - -test -d "$(dist_dir)" && rm -rf "$(dist_dir)" - $(MAKE) dist-recursive - for dir in $(all_SUBDIRS); do (cd $$dir; $(MAKE) dist-recursive); done - find "$(dist_dir)" -type d -name 'CVS' -exec rm -rf '{}' ';' -prune - find "$(dist_dir)" -type d -name '*~' -exec rm -rf '{}' ';' -prune - tar jcvf @abs_top_builddir@/hoc-@PACKAGE_VERSION@.tar.bz2 \ - ./hoc-@PACKAGE_VERSION@ - -distcheck: dist - ( cd "$(dist_dir)" && ./configure && make ) - -check: - ( cd Tests && $(MAKE) check ) - -$(FFI_SOURCE_DIR)/build/src/raw_api.o: - ( cd $(FFI_SOURCE_DIR)/build && $(MAKE) ) - -hoc-all: - for dir in $(SUBDIRS); do (cd $$dir; echo "In directory $$dir"; $(MAKE) all) done - -clean: - for dir in $(all_SUBDIRS); do (cd $$dir; echo "In directory $$dir"; $(MAKE) clean) done - -install: - for dir in $(SUBDIRS); do (cd $$dir; echo "In directory $$dir"; $(MAKE) install) done - -install-files: - for dir in $(SUBDIRS); do (cd $$dir; echo "In directory $$dir"; $(MAKE) install-files) done - -package: - mkdir -p "$(installer_package_root)" - $(MAKE) install-files destdir="$(installer_package_root)" - cp HOC/HOC.conf "$(installer_package_root)"/$(GHC_LIB_PATH)/HOC - cp Foundation/Foundation.conf "$(installer_package_root)"/$(GHC_LIB_PATH)/Foundation - cp AppKit/AppKit.conf "$(installer_package_root)"/$(GHC_LIB_PATH)/AppKit - chown -R root:admin "$(installer_package_root)" - -.PHONY: samples -samples: - for dir in $(Samples_SUBDIRS); do (echo "In directory $$dir"; cd $$dir; $(MAKE)) done - ======================================= --- /trunk/hoc/Samples/Browser/Makefile Tue Jul 26 19:55:40 2005 +++ /dev/null @@ -1,34 +0,0 @@ -include ../../config.mk - -dist_srcdir = Samples/Browser -dist_FILES = \ - Contents \ - $(wildcard *.hs) \ - Makefile.in \ - $(NULL) - -all: Browser.app - -Browser.app: Browser Contents/Resources/all-selectors.txt - hocwrap Browser - -Browser: *.hs - mkdir -p build - $(GHC) --make -fglasgow-exts Main.hs -odir build -hidir build -O -o Browser - -interpret: - mkdir -p build - hocwrap -i -- -fglasgow-exts Main.hs -odir build -hidir build - -zerolink: nolink interpret - -nolink: - mkdir -p build - $(GHC) --make -fglasgow-exts Main.hs -odir build -hidir build -O -pgml true - -Contents/Resources/all-selectors.txt: ../../Bindings/all-selectors.txt - cp $< $@ - -clean: - rm -rf build/ Browser Browser.app/ 'Interpreted Haskell Application.app/' Contents/Resources/all-selectors.txt - ======================================= --- /trunk/hoc/Samples/Editor/Makefile Wed Nov 1 07:45:05 2006 +++ /dev/null @@ -1,29 +0,0 @@ -include ../../config.mk - -dist_srcdir = Samples/Editor -dist_FILES = \ - Contents \ - $(wildcard *.hs) \ - Makefile.in \ - $(NULL) - -all: Editor.app - -Editor.app: Editor - hocwrap Editor - -Editor: *.hs - mkdir -p build - $(GHC) --make -fglasgow-exts -fth Main.hs -odir build -hidir build -O -o Editor - -interpret: - mkdir -p build - hocwrap -i -- -fglasgow-exts Main.hs -odir build -hidir build - -zerolink: nolink interpret - -nolink: - mkdir -p build - $(GHC) --make -fglasgow-exts -fth Main.hs -odir build -hidir build -O -pgml true -clean: - rm -rf build Editor Editor.app 'Interpreted Haskell Application.app/' ======================================= --- /trunk/hoc/Samples/ExpressionParser/Makefile Tue Jul 26 19:55:40 2005 +++ /dev/null @@ -1,31 +0,0 @@ -include ../../config.mk - -dist_srcdir = Samples/ExpressionParser -dist_FILES = \ - Contents \ - $(wildcard *.hs) \ - Makefile.in \ - $(NULL) - -all: ExpressionParser.app - -ExpressionParser.app: ExpressionParser - hocwrap ExpressionParser - -ExpressionParser: *.hs - mkdir -p build - $(GHC) --make Main.hs -odir build -hidir build -O -o $@ - -interpret: - mkdir -p build - hocwrap -i -- Main.hs -odir build -hidir build - -zerolink: nolink interpret - -nolink: - mkdir -p build - $(GHC) --make Main.hs -odir build -hidir build -O -pgml true - -clean: - rm -rf build/ ExpressionParser ExpressionParser.app/ 'Interactive Haskell Application.app/' - ======================================= --- /trunk/hoc/Samples/UniqSort/Makefile Sat Aug 6 09:45:38 2005 +++ /dev/null @@ -1,19 +0,0 @@ -include ../../config.mk - -dist_srcdir = Samples/UniqSort -dist_FILES = \ - $(wildcard *.hs) \ - Makefile.in \ - $(NULL) - -all: uniqsort - -uniqsort: UniqSort.hs - $(GHC) -o $@ --make $< - -uniqsort.stripped: UniqSort.hs - $(GHC) -o $@ --make -optl-Wl,-dead_strip $< - -clean: - rm -f uniqsort *.o *.hi - ======================================= --- /trunk/hoc/Tests/Makefile Sun Aug 24 21:31:51 2008 +++ /dev/null @@ -1,47 +0,0 @@ -.PHONY: thtests cleanthbuild - -check: static - -static: TestFoundation.static - ./TestFoundation.static - -dynamic: TestFoundation.dynamic - ./TestFoundation.dynamic - - -build: - mkdir -p build/dynamic/imports - mkdir -p build/dynamic/objects - mkdir -p build/static/imports - mkdir -p build/static/objects - -TestFoundation.dynamic: build TestFoundation.hs - ghc -dynamic -odir build/dynamic/objects -hidir build/dynamic/imports \ - -o $@ -package-conf ../inplace.conf \ - -package Foundation --make TestFoundation.hs - -TestFoundation.static: build TestFoundation.hs - ghc -odir build/static/objects -hidir build/static/imports \ - -o $@ -package-conf ../inplace.conf \ - -package Foundation --make TestFoundation.hs - -thbuild: - mkdir -p thbuild/static/imports - mkdir -p thbuild/static/objects - -cleanthbuild: - rm -rf thbuild - -TestHOCDeclareSelector: thbuild TestHOCDeclareSelector.hs TestHOCDeclareSelectorForward.hs - ghc -odir thbuild/static/objects -hidir thbuild/static/imports \ - -pgml true -fth -o $@ -package-conf ../inplace.conf \ - -package HOC --make TestHOCDeclareSelector.hs \ - -main-is TestHOCDeclareSelector - -thtests: cleanthbuild TestHOCDeclareSelector - -clean: cleanthbuild - rm -rf build - rm -f TestFoundation.static - rm -f TestFoundation.dynamic - ======================================= --- /trunk/hoc/Tools/Makefile.in Sat Jul 30 01:24:45 2005 +++ /dev/null @@ -1,27 +0,0 @@ -include ../config.mk - -dist_srcdir = Tools -dist_FILES = \ - HOCWrap.hs \ - Makefile.in \ - $(NULL) - -all: hocwrap - -hocwrap: *.hs - mkdir -p build/hocwrap - $(GHC) --make HOCWrap.hs \ - -fglasgow-exts \ - -o hocwrap \ - -odir build/hocwrap -hidir build/hocwrap \ - -package-conf ../inplace.conf - -clean: - rm -rf hocwrap build - -install: install-files - -install-files: all - mkdir -p "$(destdir)"/$(bindir) - install -s hocwrap "$(destdir)"/$(bindir) - ======================================= --- /trunk/hoc/aclocal.m4 Tue May 11 22:44:14 2004 +++ /dev/null @@ -1,373 +0,0 @@ -builtin(include,objc.m4) - -AC_SUBST(MAKE) -AC_SUBST(OBJC_RUNTIME) -AC_SUBST(OBJC_RUNTIME_FLAG) -AC_SUBST(BROKEN_COMPILER) -AC_SUBST(BROKEN_BUILTIN_APPLY) -AC_SUBST(NO_NESTED_FUNCTIONS) -AC_SUBST(PCCTS_CFLAGS) -AC_SUBST(HOST)dnl -AC_SUBST(HOST_CPU)dnl -AC_SUBST(HOST_VENDOR)dnl -AC_SUBST(HOST_OS)dnl -AC_SUBST(TARGET)dnl -AC_SUBST(TARGET_CPU)dnl -AC_SUBST(TARGET_VENDOR)dnl -AC_SUBST(TARGET_OS)dnl -AC_SUBST(STRUCT_ALIGNMENT)dnl - -#------------------------------------------------------------------------ -# OD_OBJC_RUNTIME -- -# -# Determine the default, working Objective C runtime -# -# Arguments: -# None. -# -# Requires: -# none -# -# Depends: -# AC_PROG_OBJC from objc.m4 -# -# Results: -# -# Adds a --with-objc-runtime switch to configure. -# Result is cached. -# -# Defines one of the following preprocessor macros: -# NeXT_RUNTIME GNU_RUNTIME -#------------------------------------------------------------------------ -AC_DEFUN([OD_OBJC_RUNTIME],[ - AC_REQUIRE([AC_PROG_OBJC]) - AC_ARG_WITH(objc-runtime, [ --with-objc-runtime Specify either "GNU" or "NeXT"], [with_objc_runtime=${withval}]) - - if test x"${with_objc_runtime}" != x; then - case "${with_objc_runtime}" in - GNU) - ;; - NeXT) - ;; - *) - AC_MSG_ERROR([${with_objc_runtime} is not a valid argument to --with-objc-runtime. Please specify either "GNU" or "NeXT"]) - ;; - esac - fi - - AC_LANG_PUSH([Objective C]) - - # Check for common header, objc/objc.h - AC_CHECK_HEADERS([objc/objc.h], ,[AC_MSG_ERROR([Can't locate Objective C runtime headers])]) - - # Add -lobjc. The following tests will ensure that the library exists and functions with the detected Objective C compiler - # If the tests fail, AC_MSG_FAILURE is called, and $LIBS does not need to be restored - LIBS="${LIBS} -lobjc" - - if test x"${with_objc_runtime}" == x || test x"${with_objc_runtime}" == x"NeXT"; then - AC_MSG_CHECKING([for NeXT Objective C runtime]) - AC_CACHE_VAL(ac_cv_objc_runtime_next, [ - # The following uses quadrigraphs - # '@<:@' = '[' - # '@:>@' = ']' - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([ - #include <objc/objc.h> - #include <objc/objc-api.h> - ], [ - id class = objc_lookUpClass("Object"); - id obj = @<:@class alloc@:>@; - puts(@<:@obj name@:>@); - ]) - ], [ - ac_cv_objc_runtime_next="yes" - ], [ - ac_cv_objc_runtime_next="no" - ] - ) - ]) - AC_MSG_RESULT(${ac_cv_objc_runtime_next}) - else - ac_cv_objc_runtime_next="no" - fi - - if test x"${with_objc_runtime}" == x || test x"${with_objc_runtime}" == x"GNU"; then - AC_MSG_CHECKING([for GNU Objective C runtime]) - AC_CACHE_VAL(ac_cv_objc_runtime_gnu, [ - # The following uses quadrigraphs - # '@<:@' = '[' - # '@:>@' = ']' - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([ - #include <objc/objc.h> - #include <objc/objc-api.h> - ], [ - id class = objc_lookup_class("Object"); - id obj = @<:@class alloc@:>@; - puts(@<:@obj name@:>@); - ]) - ], [ - ac_cv_objc_runtime_gnu="yes" - ], [ - ac_cv_objc_runtime_gnu="no" - ] - ) - ]) - AC_MSG_RESULT(${ac_cv_objc_runtime_gnu}) - else - ac_cv_objc_runtime_gnu="no" - fi - - # NeXT runtime is prefered - if test x"${ac_cv_objc_runtime_next}" == x"yes"; then - OBJC_RUNTIME="NeXT" - OBJC_RUNTIME_FLAGS="-fnext-runtime" - AC_MSG_NOTICE([Using NeXT Objective C runtime]) - AC_DEFINE([NeXT_RUNTIME], 1, [Define if using the NeXT Objective C runtime and compiler.]) - elif test x"${ac_cv_objc_runtime_gnu}" == x"yes"; then - OBJC_RUNTIME="GNU" - OBJC_RUNTIME_FLAGS="-fgnu-runtime" - AC_MSG_NOTICE([Using GNU Objective C runtime]) - AC_DEFINE([GNU_RUNTIME], 1, [Define if using the GNU Objective C runtime and compiler.]) - else - AC_MSG_FAILURE([Could not locate a working Objective C runtime.]) - fi - - - AC_LANG_POP([Objective C]) -]) - -AC_DEFUN(AC_CHECK_NESTED_FUNCTIONS, [ -AC_REQUIRE([AC_PROG_OBJC]) -AC_REQUIRE([OD_OBJC_RUNTIME]) -AC_MSG_CHECKING(whether nested functions work) -AC_CACHE_VAL(ac_cv_nested_functions, [ -AC_LANG_PUSH([Objective C]) -AC_TRY_RUN([ -f(void (*nested)()) -{ - (*nested)(); -} - -main() -{ - int a = 0; - void nested() - { - a = 1; - } - f(nested); - if(a != 1) - exit(1); - exit(0); -} -], ac_cv_nested_functions=yes, ac_cv_nested_functions=no, -ac_cv_nested_functions=yes) -AC_LANG_POP([Objective C]) -])dnl -AC_MSG_RESULT(${ac_cv_nested_functions}) -NO_NESTED_FUNCTIONS=no -if test $ac_cv_nested_functions = no; then - AC_DEFINE(NO_NESTED_FUNCTIONS, 1, [Define if the compiler does not support nested functions.]) - NO_NESTED_FUNCTIONS=yes -fi -])dnl -dnl -dnl -AC_DEFUN(AC_BROKEN_COMPILER, [ -AC_REQUIRE([AC_PROG_OBJC]) -AC_REQUIRE([OD_OBJC_RUNTIME]) -AC_MSG_CHECKING(if the Objective-C compiler crashes with nested functions) -AC_CACHE_VAL(ac_cv_broken_compiler, [ -AC_LANG_PUSH([Objective C]) -AC_TRY_RUN([ -#include <objc/objc.h> -#include <objc/Object.h> - -void f() -{ - auto void h(id); - - void h(id exception) - { - [Object alloc]; - { - void clean(void) - { - } - } - } -} - -void g() -{ - auto void h(id); - - void h(id exception) - { - [Object alloc]; - } -} - -main() -{ - exit(0); -} -], ac_cv_broken_compiler=no, -ac_cv_broken_compiler=yes, -ac_cv_broken_compiler=no) -AC_LANG_POP([Objective C]) -])dnl -BROKEN_COMPILER=${ac_cv_broken_compiler} -if test ${ac_cv_nested_functions} = no -o ${ac_cv_broken_compiler} = yes; then - ac_cv_broken_compiler=yes; - BROKEN_COMPILER=yes; - AC_DEFINE(BROKEN_COMPILER, 1, [Define if the compiler is broken when nested fu nctions are used with Objective-C messages.]) -fi -AC_MSG_RESULT(${ac_cv_broken_compiler}) -])dnl -dnl -dnl -AC_DEFUN(AC_BROKEN_BUILTIN_APPLY, [ -AC_REQUIRE([AC_PROG_OBJC]) -AC_REQUIRE([OD_OBJC_RUNTIME]) -AC_MSG_CHECKING(whether __builtin_apply and __builtin_return are broken) -AC_CACHE_VAL(ac_cv_broken_builtin_apply, [ -AC_LANG_PUSH([Objective C]) -AC_TRY_RUN([ -#include <objc/Object.h> - -float value = 123.456; - -@interface MyObject : Object -@end - -@implementation MyObject -- (float)floatValue -{ - return value; -} -@end - -@interface Forwarder : Object -{ - id object; -} -@end - -@implementation Forwarder -- setObject:anObject -{ - object = anObject; - return self; -} - -- (void*)forward:(SEL)selector:(void*)argframe -{ - IMP imp = [object methodFor:@selector(floatValue)]; - void* retframe; - void* frame = malloc(116); - *(void**)frame = NULL; - retframe = __builtin_apply((void(*)(void))imp, frame, 0); - if(*(long double*)(((char*)retframe) + 8) == (long double)value) - exit(0); - exit(1); -} -@end - -int main() -{ - id fwd = [[[Forwarder alloc] init] setObject:[MyObject alloc]]; - [fwd floatValue]; - exit(0); - return 0; // keep compiler happy -} -], ac_cv_broken_builtin_apply=no, -ac_cv_broken_builtin_apply=yes, -ac_cv_broken_builtin_apply=no) -AC_LANG_POP([Objective C]) -])dnl -AC_MSG_RESULT(${ac_cv_broken_builtin_apply}) -BROKEN_BUILTIN_APPLY=${ac_cv_broken_builtin_apply} -if test $BROKEN_BUILTIN_APPLY = yes; then - AC_DEFINE(BROKEN_BUILTIN_APPLY, 1, [Define if the __builtin_apply pseudo-function doesn't set the floating point return value at retframe + 8 on Intel machines.]) -fi -])dnl -dnl -dnl -AC_DEFUN(AC_CHECK_MATH_LIB, [ -AC_REQUIRE([AC_PROG_OBJC]) -AC_REQUIRE([OD_OBJC_RUNTIME]) -dnl temporary rename AC_MSG_RESULT to do nothing -define(old_AC_MSG_RESULT, defn([AC_MSG_RESULT]))dnl -define([AC_MSG_RESULT],)dnl -AC_CHECK_FUNC(sqrt, , -[dnl On linux, to link a program that use math functions we must link with libm.a -LIBS="$LIBS -lm -lc" -ac_cv_func_sqrt=no -AC_TRY_LINK(, [ -double sqrt(double); -sqrt(2.0); -], ac_cv_func_sqrt="-lm -lc") -]) -define([AC_MSG_RESULT], defn([old_AC_MSG_RESULT]))dnl -undefine([old_AC_MSG_RESULT])dnl -AC_MSG_RESULT($ac_cv_func_sqrt) -])dnl -dnl -dnl -AC_DEFUN(AC_STRUCT_ALIGNMENT, [ -AC_REQUIRE([AC_PROG_OBJC]) -AC_REQUIRE([OD_OBJC_RUNTIME]) -AC_MSG_CHECKING(for the C structures alignment) -AC_CACHE_VAL(ac_cv_struct_alignment, -[AC_TRY_RUN([#include <stdio.h> - -struct simple { - double x; - char y; -} simple1; - -int struct_alignment = __alignof__ (simple1); - -main() -{ - FILE *f=fopen("conftestval", "w"); - if (!f) exit(1); - fprintf(f, "%u\n", struct_alignment); - exit(0); -} -], ac_cv_struct_alignment=`cat conftestval`, -ac_cv_struct_alignment=0, -ifelse([$2], , , ac_cv_struct_alignment=$2))])dnl -AC_MSG_RESULT($ac_cv_struct_alignment) -STRUCT_ALIGNMENT=$ac_cv_struct_alignment -])dnl -dnl -dnl -AC_DEFUN(AC_COMPILE_CHECK_SIZEOF, -[changequote(<<, >>)dnl -dnl The name to #define. -define(<<AC_TYPE_NAME>>, translit(sizeof_$1, [a-z *], [A-Z_P]))dnl -dnl The cache variable name. -define(<<AC_CV_NAME>>, translit(ac_cv_sizeof_$1, [ *], [_p]))dnl -changequote([, ])dnl -AC_MSG_CHECKING(size of $1) -AC_CACHE_VAL(AC_CV_NAME, -[for ac_size in 4 8 1 2 16 $2 ; do # List sizes in rough order of prevalence. - AC_TRY_COMPILE([#include "confdefs.h" -#include <sys/types.h> -$2 -], [switch (0) case 0: case (sizeof ($1) == $ac_size):;], AC_CV_NAME=$ac_size) - if test x$AC_CV_NAME != x ; then break; fi -done -]) -if test x$AC_CV_NAME = x ; then - echo "cannot determine a size for $1"; - AC_CV_NAME=0; -fi -AC_MSG_RESULT($AC_CV_NAME) -AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME, [The number of bytes in type $1]) -undefine([AC_TYPE_NAME])dnl -undefine([AC_CV_NAME])dnl -]) ======================================= --- /trunk/hoc/autogen.sh Tue May 11 22:44:14 2004 +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -x - -# this is the world's most complicated autogen.sh script :) - -exec autoconf - ======================================= --- /trunk/hoc/config.mk.in Sun Aug 17 21:58:22 2008 +++ /dev/null @@ -1,45 +0,0 @@ -NULL = - -PLATFORM=@HOC_PLATFORM@ -ALL_LOAD=@HOC_LD_ALL_LOAD@ -MAKE_STATIC_LIB=@HOC_MAKE_STATIC_LIB@ -FOUNDATION_INCLUDES=@HOC_FOUNDATION_INCLUDES@ -FOUNDATION_LIBS=@HOC_FOUNDATION_LIBS@ -DEFINES=@HOC_DEFINES@ -CFLAGS=@HOC_CFLAGS@ - -GHC=@GHC@ -GHC_PKG=@GHC_PKG@ -GHC_LIB_PATH=@GHC_LIB_PATH@ - -FFI_CFLAGS=@FFI_CFLAGS@ -FFI_SOURCES=@FFI_SOURCES@ -FFI_LIBS=@FFI_LIBS@ -FFI_SOURCE_DIR=@FFI_SOURCE_DIR@ - -HocBuildDylibs=@HocBuildDylibs@ - -DOT=@DOT@ -POD2HTML=@POD2HTML@ - -# installation parameters - -prefix = @prefix@ -DESTDIR = $(prefix) -bindir = $(DESTDIR)/bin - -# distribution tarball information - -dist_dir = @abs_top_builddir@/hoc-@PACKAGE_VERSION@ - -default: all - -dist-recursive: - mkdir -p "$(dist_dir)/$(dist_srcdir)" - cp -R $(dist_FILES) "$(dist_dir)/$(dist_srcdir)" - -CFLAGS+= -I$(GHC_LIB_PATH)/include - -ifeq "$(HocBuildDylibs)" "YES" -EXTRA_GHCFLAGS += -fPIC -dynamic -endif ======================================= --- /trunk/hoc/configure.ac Sun Aug 17 21:58:22 2008 +++ /dev/null @@ -1,292 +0,0 @@ -# -*- Autoconf -*- -# Process this file with autoconf to produce a configure script. - - -# -# Basic autoconf setup -# - -AC_PREREQ(2.57) -AC_INIT(HOC, 0.8, oz...@al...) -AC_CONFIG_AUX_DIR(autotools) - -# Check we're in the right directory -AC_CONFIG_SRCDIR([HOC/HOC/NewClass.hs]) - -# Check system we're running on -AC_CANONICAL_SYSTEM - -# Checks for Objective-C support -AC_LANG_OBJC - -# Checks for programs. -AC_PROG_OBJC -AC_PROG_MAKE_SET -AC_PROG_RANLIB -# other programs to check for: ar cp ghc-pkg ld rm xargs gnumake - -# Programs required for building docs -build_docs_ok=no -AC_CHECK_PROG(POD2HTML, pod2html, pod2html) -APP_GRAPHVIZ_PATH='/Applications/Graphviz.app/Contents/MacOS' -AC_PATH_PROG(DOT, "dot", no, "$APP_GRAPHVIZ_PATH:$PATH") -if test "x$POD2HTML" = "xpod2html"; then - if test "x$DOT" != "xno"; then - build_docs_ok=yes - fi -fi - - -# -# Test for GHC: this handy autoconf macro blatantly stolen from HDoc: -# http://www.fmi.uni-passau.de/~groessli/hdoc/ -# - -AC_ARG_WITH(ghc, - [ --with-ghc=... command to run ghc (e.g. $HOME/bin/ghc-6.4)], - [GHC=$withval]) - -if test -z "$GHC"; then - AC_CHECK_TOOL(GHC, ghc, ghc) -fi - -GHC_FLAGS="" - -if test "$GHC"; then - AC_MSG_CHECKING([for ghc version]) - changequote(<<, >>) - ghc_version=`$GHC --version 2>&1 | sed -n -e 's/.* version \([0-9.][0-9.]*\).*/\1/p'` - ghc_major=`echo "$ghc_version" | sed -n -e 's/\([0-9][0-9]*\).*/\1/p'` - ghc_minor=`echo "$ghc_version" | sed -n -e 's/[0-9][0-9]*\.\([0-9][0-9]*\).*/\1/p'` - changequote([, ]) - AC_MSG_RESULT([$ghc_version]) - if test '(' "$ghc_major" -ge 6 -a "$ghc_minor" -ge 4 ')' -o \ - '(' "$ghc_major" -gt 6 ')'; then - AC_MSG_CHECKING([for ghc library directory]) - GHC_LIB_PATH=`$GHC --print-libdir` - AC_MSG_RESULT([$GHC_LIB_PATH]) - else - AC_MSG_ERROR([** Sorry, your GHC is too old. GHC >= 6.4 required.]) - GHC="" - fi -else - AC_MSG_ERROR([** Could not find GHC.]) -fi - -AC_SUBST(GHC) -AC_SUBST(GHC_LIB_PATH) - -# Check for ghc-pkg -AC_ARG_WITH(ghc-pkg, - [ --with-ghc-pkg=... command to run ghc-pkg (e.g. $HOME/bin/ghc-pkg-6.4)], - [GHC_PKG="$withval"]) - -if test -n "$GHC_PKG"; then - AC_SUBST(GHC_PKG) - true -else - AC_CHECK_TOOL(GHC_PKG, ghc-pkg, ghc-pkg) -fi - - -# -# Check for various C requirements -# - -AC_CHECK_HEADERS([assert.h objc/objc-api.h objc/objc-class.h objc/objc-runtime.h stdlib.h]) -AC_C_CONST -AC_FUNC_MALLOC -AC_CHECK_FUNCS([memset strdup]) - -#check to see if we're building a dynanic haskell lib -AC_ARG_WITH([dynamic-haskell], - [AS_HELP_STRING([--with-dynamic-haskell], - [whether or not to build dynamic libraries for the haskell modules. Default is static])], - [HocBuildDylibs=YES], - [HocBuildDylibs=NO]) -AC_SUBST(HocBuildDylibs) - -# -# Determine which ffi to use -# -AC_ARG_WITH([ffi], - [AS_HELP_STRING([--with-ffi], - [where to find ffi. Use either this or --with-ffi-sources @<:@default=check@:>@])], - [], - [with_ffi=check]) -AC_ARG_WITH([ffi-sources], - [AS_HELP_STRING([--with-ffi-sources], - [where to find ffi sources. Use either this or --with-ffi @<:@default=check@:>@])], - [], - [with_ffi_sources=check]) - - -if test "x$with_ffi" = "xyes"; then - with_ffi=check -fi -if test "x$with_ffi_sources" = "xyes";then - with_ffi_sources=check -fi - -if test "x$with_ffi" != "xcheck" -a "x$with_ffi_sources" != "xcheck"; then - AC_MSG_ERROR([*** Cannot specify both --with-ffi and --with-ffi-sources.]) -fi - -if test "x$with_ffi_sources" = "xcheck" -a "x$with_ffi" != "xcheck"; then - with_ffi_sources=no -fi - -# -# Check for libffi in the libffi-src/ directory -# -case "$with_ffi_sources" in - 'no') - ;; - 'check') - AC_CHECK_FILE([libffi-src/configure], [with_ffi_sources=$(pwd)/libffi-src; $with_ffi_sources/configure], [with_ffi_sources=no]) - ;; - /*) - AC_CHECK_FILE([$with_ffi_sources/configure],[$with_ffi_sources/configure],[with_ffi_sources=fail]) - ;; - *) - with_ffi_sources=$(pwd)/$(dirname $with_ffi_sources)/$(basename $with_ffi_sources) - AC_CHECK_FILE([$with_ffi_sources/configure],[$with_ffi_sources/configure],[with_ffi_sources=fail]) - ;; -esac - -if test "x$with_ffi_sources" = "xfail"; then - AC_MSG_ERROR([*** Unable to locate ffi-sources. Please specify a valid ffi path with --with-ffi-sources]) -elif test "x$with_ffi_sources" != "xno"; then - with_ffi=no -fi - -if test "x$with_ffi_sources" = "xno"; then - case "$with_ffi" in - 'no') - AC_MSG_ERROR([*** Must specify either a valid --with-ffi or a valid --with-ffi-sources]) - ;; - 'check') - AC_CHECK_FILE([/usr/include/ffi/ffi.h], [with_ffi=/usr], [with_ffi=no]) - ;; - /*) - AC_CHECK_FILE([$with_ffi/include/ffi/ffi.h], [], [with_ffi=fail]) - ;; - *) - with_ffi=$(pwd)/$(dirname $with_ffi)/$(basename $with_ffi) - AC_CHECK_FILE([$with_ffi/include/ffi/ffi.h], [], [with_ffi=fail]) - ;; - esac - - if test "x$with_ffi" = "xfail"; then - AC_MSG_ERROR([*** Unable to locate ffi. Please specify a valid ffi path with --with-ffi]) - fi - -fi - -if test "x$with_ffi" = "xno" -a "x$with_ffi_sources" = "xno"; then - AC_MSG_ERROR([*** Must specify one of --with-ffi or --with-ffi-sources]) -fi - -if test "x$with_ffi" != "xno"; then - FFI_CFLAGS="-I$with_ffi/include/ffi" - FFI_SOURCES= - if test "x$with_ffi" == "x/usr"; then - FFI_LIBS="-lffi" - FFI_LIB_DIRS= - else - FFI_LIBS="-L$with_ffi/lib -lffi" - FFI_LIB_DIRS="\"\\\"$with_ffi/lib\\\"\"" - fi - PKG_EXTRA_LIBS="\", \\\"ffi\\\"\"" -elif test "x$with_ffi_sources" != "xno" ; then - FFI_CFLAGS="-I$with_ffi_sources/include" - FFI_SOURCES=" \\ - $with_ffi_sources/src/types.c \\ - $with_ffi_sources/src/prep_cif.c \\ - $with_ffi_sources/src/x86/ffi_darwin.c \\ - $with_ffi_sources/src/x86/darwin.S \\ - $with_ffi_sources/src/powerpc/ffi_darwin.c \\ - $with_ffi_sources/src/powerpc/darwin.S \\ - $with_ffi_sources/src/powerpc/darwin_closure.S" - FFI_SOURCE_DIR=$with_ffi_sources - FFI_LIBS= -fi - -AC_SUBST(FFI_CFLAGS) -AC_SUBST(FFI_SOURCES) -AC_SUBST(FFI_LIBS) -AC_SUBST(FFI_SOURCE_DIR) -AC_SUBST(FFI_LIB_DIRS) -AC_SUBST(PKG_EXTRA_LIBS) - -# -# Check for Cocoa (Mac OS X) or GNUstep platform -# - -AC_MSG_CHECKING([for Objective-C platform]) -case "$target_os" in - darwin*) - AC_MSG_RESULT([Cocoa]) - platform=macos;; - *) - AC_MSG_RESULT([GNUstep]) - platform=gnustep;; -esac - -# Platform-specific definitions go here -if test "x$platform" = "xgnustep"; then - HOC_LD_ALL_LOAD='--whole-archive' - HOC_MAKE_STATIC_LIB='ar cqs' - HOC_FOUNDATION_INCLUDES='-I/usr/lib/GNUstep/System/Library/Headers/' - HOC_FOUNDATION_LIBS='-L/usr/lib/GNUstep/System/Library/Libraries \\\ - -L/usr/lib/gcc-lib/i486-linux/3.3.5 \\\ - -lobjc -lgnustep-base' - HOC_DEFINES='-DGNUSTEP' - HOC_CFLAGS='$(FOUNDATION_INCLUDES) $(DEFINES) \\\ - -fconstant-string-class=NSConstantString \\\ - -Wno-import' - - HOC_FOUNDATION_LIB_DIRS="\"\\\"/usr/lib/GNUstep/System/Library/Libraries\\\" \\\"/usr/lib/gcc-lib/i486-linux/3.3.5\\\"\"" - -else - HOC_LD_ALL_LOAD='-all_load' - HOC_MAKE_STATIC_LIB='libtool -static -o' - HOC_FOUNDATION_INCLUDES='' - HOC_FOUNDATION_LIBS='-framework Foundation' - HOC_DEFINES='' - HOC_CFLAGS='$(FOUNDATION_INCLUDES) $(DEFINES)' - HOC_FOUNDATION_LIB_DIRS='' -fi -HOC_PLATFORM="$platform" -AC_SUBST(HOC_PLATFORM) -AC_SUBST(HOC_LD_ALL_LOAD) -AC_SUBST(HOC_MAKE_STATIC_LIB) -AC_SUBST(HOC_FOUNDATION_INCLUDES) -AC_SUBST(HOC_FOUNDATION_LIBS) -AC_SUBST(HOC_DEFINES) -AC_SUBST(HOC_CFLAGS) -AC_SUBST(HOC_FOUNDATION_LIB_DIRS) - -# -# Output configuration files and Makefiles -# - -AC_SUBST(PACKAGE_VERSION) - -AC_CONFIG_FILES([config.mk - Makefile - AppKit/Makefile - Bindings/Makefile - docs/Makefile - Foundation/Makefile - HOC/Makefile - HOC_cbits/Makefile - InterfaceGenerator/Makefile - InterfaceGenerator2/Makefile - Tools/Makefile - ]) - -AC_OUTPUT - -# Modeline for vi(m) - vi:expandtab - ======================================= --- /trunk/hoc/objc.m4 Tue May 11 22:44:14 2004 +++ /dev/null @@ -1,623 +0,0 @@ -# objc.m4 -# Based on c.m4 from GNU Autoconf -# The Objective C support, added by Landon Fuller <la...@op...> -# on March 10th, 2004, is heavily based on Autoconf's existing C++ support. -# -########### Copyright and Licensing terms ########## -# -# This file is part of Autoconf. -*- Autoconf -*- -# Programming languages support. -# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. -# -# As a special exception, the Free Software Foundation gives unlimited -# permission to copy, distribute and modify the configure scripts that -# are the output of Autoconf. You need not follow the terms of the GNU -# General Public License when using or distributing such scripts, even -# though portions of the text of Autoconf appear in them. The GNU -# General Public License (GPL) does govern all other use of the material -# that constitutes the Autoconf program. -# -# Certain portions of the Autoconf source text are designed to be copied -# (in certain cases, depending on the input) into the output of -# Autoconf. We call these the "data" portions. The rest of the Autoconf -# source text consists of comments plus executable code that decides which -# of the data portions to output in any given case. We call these -# comments and executable code the "non-data" portions. Autoconf never -# copies any of the non-data portions into its output. -# -# This special exception to the GPL applies to versions of Autoconf -# released by the Free Software Foundation. When you make and -# distribute a modified version of Autoconf, you may extend this special -# exception to the GPL to apply to your modified version as well, *unless* -# your modified version has the potential to copy into its output some -# of the text that was the non-data portion of the version that you started -# with. (In other words, unless your change moves or copies text from -# the non-data portions to the data portions.) If your modification has -# such potential, you must delete any notice of this special exception -# to the GPL from your modified version. -# -# Written by David MacKenzie, with help from -# Franc,ois Pinard, Karl Berry, Richard Pixley, Ian Lance Taylor, -# Roland McGrath, Noah Friedman, david d zuhn, and many others. -# -########## GNU General Public License (GPL), version 2 ########## -# -# GNU GENERAL PUBLIC LICENSE -# Version 2, June 1991 -# -# Copyright (C) 1989, 1991 Free Software Foundation, Inc. -# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# Everyone is permitted to copy and distribute verbatim copies -# of this license document, but changing it is not allowed. -# -# Preamble -# -# The licenses for most software are designed to take away your -# freedom to share and change it. By contrast, the GNU General Public -# License is intended to guarantee your freedom to share and change free -# software--to make sure the software is free for all its users. This -# General Public License applies to most of the Free Software -# Foundation's software and to any other program whose authors commit to -# using it. (Some other Free Software Foundation software is covered by -# the GNU Library General Public License instead.) You can apply it to -# your programs, too. -# -# When we speak of free software, we are referring to freedom, not -# price. Our General Public Licenses are designed to make sure that you -# have the freedom to distribute copies of free software (and charge for -# this service if you wish), that you receive source code or can get it -# if you want it, that you can change the software or use pieces of it -# in new free programs; and that you know you can do these things. -# -# To protect your rights, we need to make restrictions that forbid -# anyone to deny you these rights or to ask you to surrender the rights. -# These restrictions translate to certain responsibilities for you if you -# distribute copies of the software, or if you modify it. -# -# For example, if you distribute copies of such a program, whether -# gratis or for a fee, you must give the recipients all the rights that -# you have. You must make sure that they, too, receive or can get the -# source code. And you must show them these terms so they know their -# rights. -# -# We protect your rights with two steps: (1) copyright the software, and -# (2) offer you this license which gives you legal permission to copy, -# distribute and/or modify the software. -# -# Also, for each author's protection and ours, we want to make certain -# that everyone understands that there is no warranty for this free -# software. If the software is modified by someone else and passed on, we -# want its recipients to know that what they have is not the original, so -# that any problems introduced by others will not reflect on the original -# authors' reputations. -# -# Finally, any free program is threatened constantly by software -# patents. We wish to avoid the danger that redistributors of a free -# program will individually obtain patent licenses, in effect making the -# program proprietary. To prevent this, we have made it clear that any -# patent must be licensed for everyone's free use or not licensed at all. -# -# The precise terms and conditions for copying, distribution and -# modification follow. -# -# GNU GENERAL PUBLIC LICENSE -# TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION -# -# 0. This License applies to any program or other work which contains -# a notice placed by the copyright holder saying it may be distributed -# under the terms of this General Public License. The "Program", below, -# refers to any such program or work, and a "work based on the Program" -# means either the Program or any derivative work under copyright law: -# that is to say, a work containing the Program or a portion of it, -# either verbatim or with modifications and/or translated into another -# language. (Hereinafter, translation is included without limitation in -# the term "modification".) Each licensee is addressed as "you". -# -# Activities other than copying, distribution and modification are not -# covered by this License; they are outside its scope. The act of -# running the Program is not restricted, and the output from the Program -# is covered only if its contents constitute a work based on the -# Program (independent of having been made by running the Program). -# Whether that is true depends on what the Program does. -# -# 1. You may copy and distribute verbatim copies of the Program's -# source code as you receive it, in any medium, provided that you -# conspicuously and appropriately publish on each copy an appropriate -# copyright notice and disclaimer of warranty; keep intact all the -# notices that refer to this License and to the absence of any warranty; -# and give any other recipients of the Program a copy of this License -# along with the Program. -# -# You may charge a fee for the physical act of transferring a copy, and -# you may at your option offer warranty protection in exchange for a fee. -# -# 2. You may modify your copy or copies of the Program or any portion -# of it, thus forming a work based on the Program, and copy and -# distribute such modifications or work under the terms of Section 1 -# above, provided that you also meet all of these conditions: -# -# a) You must cause the modified files to carry prominent notices -# stating that you changed the files and the date of any change. -# -# b) You must cause any work that you distribute or publish, that in -# whole or in part contains or is derived from the Program or any -# part thereof, to be licensed as a whole at no charge to all third -# parties under the terms of this License. -# -# c) If the modified program normally reads commands interactively -# when run, you must cause it, when started running for such -# interactive use in the most ordinary way, to print or display an -# announcement including an appropriate copyright notice and a -# notice that there is no warranty (or else, saying that you provide -# a warranty) and that users may redistribute the program under -# these conditions, and telling the user how to view a copy of this -# License. (Exception: if the Program itself is interactive but -# does not normally print such an announcement, your work based on -# the Program is not required to print an announcement.) -# -# These requirements apply to the modified work as a whole. If -# identifiable sections of that work are not derived from the Program, -# and can be reasonably considered independent and separate works in -# themselves, then this License, and its terms, do not apply to those -# sections when you distribute them as separate works. But when you -# distribute the same sections as part of a whole which is a work based -# on the Program, the distribution of the whole must be on the terms of -# this License, whose permissions for other licensees extend to the -# entire whole, and thus to each and every part regardless of who wrote it. -# -# Thus, it is not the intent of this section to claim rights or contest -# your rights to work written entirely by you; rather, the intent is to -# exercise the right to control the distribution of derivative or -# collective works based on the Program. -# -# In addition, mere aggregation of another work not based on the Program -# with the Program (or with a work based on the Program) on a volume of -# a storage or distribution medium does not bring the other work under -# the scope of this License. -# -# 3. You may copy and distribute the Program (or a work based on it, -# under Section 2) in object code or executable form under the terms of -# Sections 1 and 2 above provided that you also do one of the following: -# -# a) Accompany it with the complete corresponding machine-readable -# source code, which must be distributed under the terms of Sections -# 1 and 2 above on a medium customarily used for software interchange; or, -# -# b) Accompany it with a written offer, valid for at least three -# years, to give any third party, for a charge no more than your -# cost of physically performing source distribution, a complete -# machine-readable copy of the corresponding source code, to be -# distributed under the terms of Sections 1 and 2 above on a medium -# customarily used for software interchange; or, -# -# c) Accompany it with the information you received as to the offer -# to distribute corresponding source code. (This alternative is -# allowed only for noncommercial distribution and only if you -# received the program in object code or executable form with such -# an offer, in accord with Subsection b above.) -# -# The source code for a work means the preferred form of the work for -# making modifications to it. For an executable work, complete source -# code means all the source code for all modules it contains, plus any -# associated interface definition files, plus the scripts used to -# control compilation and installation of the executable. However, as a -# special exception, the source code distributed need not include -# anything that is normally distributed (in either source or binary -# form) with the major components (compiler, kernel, and so on) of the -# operating system on which the executable runs, unless that component -# itself accompanies the executable. -# -# If distribution of executable or object code is made by offering -# access to copy from a designated place, then offering equivalent -# access to copy the source code from the same place counts as -# distribution of the source code, even though third parties are not -# compelled to copy the source along with the object code. -# -# 4. You may not copy, modify, sublicense, or distribute the Program -# except as expressly provided under this License. Any attempt -# otherwise to copy, modify, sublicense or distribute the Program is -# void, and will automatically terminate your rights under this License. -# However, parties who have received copies, or rights, from you under -# this License will not have their licenses terminated so long as such -# parties remain in full compliance. -# -# 5. You are not required to accept this License, since you have not -# signed it. However, nothing else grants you permission to modify or -# distribute the Program or its derivative works. These actions are -# prohibited by law if you do not accept this License. Therefore, by -# modifying or distributing the Program (or any work based on the -# Program), you indicate your acceptance of this License to do so, and -# all its terms and conditions for copying, distributing or modifying -# the Program or works based on it. - -# 6. Each time you redistribute the Program (or any work based on the -# Program), the recipient automatically receives a license from the -# original licensor to copy, distribute or modify the Program subject to -# these terms and conditions. You may not impose any further -# restrictions on the recipients' exercise of the rights granted herein. -# You are not responsible for enforcing compliance by third parties to -# this License. -# -# 7. If, as a consequence of a court judgment or allegation of patent -# infringement or for any other reason (not limited to patent issues), -# conditions are imposed on you (whether by court order, agreement or -# otherwise) that contradict the conditions of this License, they do not -# excuse you from the conditions of this License. If you cannot -# distribute so as to satisfy simultaneously your obligations under this -# License and any other pertinent obligations, then as a consequence you -# may not distribute the Program at all. For example, if a patent -# license would not permit royalty-free redistribution of the Program by -# all those who receive copies directly or indirectly through you, then -# the only way you could satisfy both it and this License would be to -# refrain entirely from distribution of the Program. -# -# If any portion of this section is held invalid or unenforceable under -# any particular circumstance, the balance of the section is intended to -# apply and the section as a whole is intended to apply in other -# circumstances. -# -# It is not the purpose of this section to induce you to infringe any -# patents or other property right claims or to contest validity of any -# such claims; this section has the sole purpose of protecting the -# integrity of the free software distribution system, which is -# implemented by public license practices. Many people have made -# generous contributions to the wide range of software distributed -# through that system in reliance on consistent application of that -# system; it is up to the author/donor to decide if he or she is willing -# to distribute software through any other system and a licensee cannot -# impose that choice. -# -# This section is intended to make thoroughly clear what is believed to -# be a consequence of the rest of this License. -# -# 8. If the distribution and/or use of the Program is restricted in -# certain countries either by patents or by copyrighted interfaces, the -# original copyright holder who places the Program under this License -# may add an explicit geographical distribution limitation excluding -# those countries, so that distribution is permitted only in or among -# countries not thus excluded. In such case, this License incorporates -# the limitation as if written in the body of this License. -# -# 9. The Free Software Foundation may publish revised and/or new versions -# of the General Public License from time to time. Such new versions will -# be similar in spirit to the present version, but may differ in detail to -# address new problems or concerns. -# -# Each version is given a distinguishing version number. If the Program -# specifies a version number of this License which applies to it and "any -# later version", you have the option of following the terms and conditions -# either of that version or of any later version published by the Free -# Software Foundation. If the Program does not specify a version number of -# this License, you may choose any version ever published by the Free Software -# Foundation. -# -# 10. If you wish to incorporate parts of the Program into other free -# programs whose distribution conditions are different, write to the author -# to ask for permission. For software which is copyrighted by the Free -# Software Foundation, write to the Free Software Foundation; we sometimes -# make exceptions for this. Our decision will be guided by the two goals -# of preserving the free status of all derivatives of our free software and -# of promoting the sharing and reuse of software generally. -# -# NO WARRANTY -# -# 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -# FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -# OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -# PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -# OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -# TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -# PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -# REPAIR OR CORRECTION. -# -# 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -# WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -# REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -# INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -# OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -# TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -# YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -# PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGES. -# -# END OF TERMS AND CONDITIONS -# -# How to Apply These Terms to Your New Programs -# -# If you develop a new program, and you want it to be of the greatest -# possible use to the public, the best way to achieve this is to make it -# free software which everyone can redistribute and change under these terms. -# -# To do so, attach the following notices to the program. It is safest -# to attach them to the start of each source file to most effectively -# convey the exclusion of warranty; and each file should have at least -# the "copyright" line and a pointer to where the full notice is found. -# -# <one line to give the program's name and a brief idea of what it does.> -# Copyright (C) <year> <name of author> -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# -# Also add information on how to contact you by electronic and paper mail. -# -# If the program is interactive, make it output a short notice like this -# when it starts in an interactive mode: -# -# Gnomovision version 69, Copyright (C) year name of author -# Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. -# This is free software, and you are welcome to redistribute it -# under certain conditions; type `show c' for details. -# -# The hypothetical commands `show w' and `show c' should show the appropriate -# parts of the General Public License. Of course, the commands you use may -# be called something other than `show w' and `show c'; they could even be -# mouse-clicks or menu items--whatever suits your program. -# -# You should also get your employer (if you work as a programmer) or your -# school, if any, to sign a "copyright disclaimer" for the program, if -# necessary. Here is a sample; alter the names: -# -# Yoyodyne, Inc., hereby disclaims all copyright interest in the program -# `Gnomovision' (which makes passes at compilers) written by James Hacker. -# -# <signature of Ty Coon>, 1 April 1989 -# Ty Coon, President of Vice -# -# This General Public License does not permit incorporating your program into -# proprietary programs. If your program is a subroutine library, you may -# consider it more useful to permit linking proprietary applications with the -# library. If this is what you want to do, use the GNU Library General -# Public License instead of this License. -# -########## End of GNU General Public License (GPL), version 2 ########## - -## ----------------------- ## -## 1. Language selection. ## -## ----------------------- ## - - -# ------------------------------ # -# 1d. The Objective C language. # -# ------------------------------ # - -# AC_LANG(Objective C) -# -------------------- -# OBJCFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -m4_define([AC_LANG(Objective C)], -[ac_ext=m -ac_cpp='$OBJCPP $CPPFLAGS' -ac_compile='$OBJC -c $OBJCFLAGS $CPPFLAGS conftest.$ac_ext >&AS_MESSAGE_LOG_FD' -ac_link='$OBJC -o conftest$ac_exeext $OBJCFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&AS_MESSAGE_LOG_FD' -ac_compiler_gnu=$ac_cv_objc_compiler_gnu -]) - - -# AC_LANG_OBJC -# ------------------------- -AU_DEFUN([AC_LANG_OBJC], [AC_LANG(Objective C)]) - - -# _AC_LANG_ABBREV(Objective C) -# ---------------------------- -m4_define([_AC_LANG_ABBREV(Objective C)], [objc]) - - -# _AC_LANG_PREFIX(Objective C) -# ---------------------------- -m4_define([_AC_LANG_PREFIX(Objective C)], [OBJC]) - - - -## ---------------------- ## -## 2.Producing programs. ## -## ---------------------- ## - - -# ------------------------- # -# 2d. Objective C sources. # -# ------------------------- # - -# AC_LANG_SOURCE(Objective C)(BODY) -# --------------------------------- -m4_copy([AC_LANG_SOURCE(C)], [AC_LANG_SOURCE(Objective C)]) - - -# AC_LANG_PROGRAM(Objective C)([PROLOGUE], [BODY]) -# ------------------------------------------------ -m4_copy([AC_LANG_PROGRAM(C)], [AC_LANG_PROGRAM(Objective C)]) - - -# AC_LANG_CALL(Objective C)(PROLOGUE, FUNCTION) -# --------------------------------------------- -m4_copy([AC_LANG_CALL(C)], [AC_LANG_CALL(Objective C)]) - - -# AC_LANG_FUNC_LINK_TRY(Objective C)(FUNCTION) -# -------------------------------------------- -m4_copy([AC_LANG_FUNC_LINK_TRY(C)], [AC_LANG_FUNC_LINK_TRY(Objective C)]) - - -# AC_LANG_BOOL_COMPILE_TRY(Objective C)(PROLOGUE, EXPRESSION) -# ----------------------------------------------------------- -m4_copy([AC_LANG_BOOL_COMPILE_TRY(C)], [AC_LANG_BOOL_COMPILE_TRY(Objective C)]) - - -# AC_LANG_INT_SAVE(Objective C)(PROLOGUE, EXPRESSION) -# --------------------------------------------------- -m4_copy([AC_LANG_INT_SAVE(C)], [AC_LANG_INT_SAVE(Objective C)]) - - - -## -------------------------------------------- ## -## 3. Looking for Compilers and Preprocessors. ## -## -------------------------------------------- ## - - -# ------------------------------ # -# 3d. The Objective C compiler. # -# ------------------------------ # - - -# AC_LANG_PREPROC(Objecitve C) -# ---------------------------- -# Find the Objective C preprocessor. Must be AC_DEFUN'd to be AC_REQUIRE'able. -AC_DEFUN([AC_LANG_PREPROC(Objective C)], -[AC_REQUIRE([AC_PROG_OBJCPP])]) - - -# AC_PROG_OBJCPP -# -------------- -# Find a working Objective C preprocessor. -# We shouldn't have to require AC_PROG_CC, but this is due to the concurrency -# between the AC_LANG_COMPILER_REQUIRE family and that of AC_PROG_OBJC. -AC_DEFUN([AC_PROG_OBJCPP], -[AC_REQUIRE([AC_PROG_OBJC])dnl -AC_ARG_VAR([OBJCPP], [Objective C preprocessor])dnl -_AC_ARG_VAR_CPPFLAGS()dnl -AC_LANG_PUSH(Objective C)dnl -AC_MSG_CHECKING([how to run the Objective C preprocessor]) -if test -z "$OBJCPP"; then - AC_CACHE_VAL(ac_cv_prog_OBJCPP, - [dnl - # Double quotes because OBJCPP needs to be expanded - for OBJCPP in "$OBJC -E" "/lib/cpp" - do - _AC_PROG_PREPROC_WORKS_IFELSE([break]) - done - ac_cv_prog_OBJCPP=$OBJCPP - ])dnl - OBJCPP=$ac_cv_prog_OBJCPP -else - ac_cv_prog_OBJCPP=$OBJCPP -fi -AC_MSG_RESULT([$OBJCPP]) -_AC_PROG_PREPROC_WORKS_IFELSE([], - [AC_MSG_FAILURE([Objective C preprocessor "$OBJCPP" fails sanity check])]) -AC_SUBST(OBJCPP)dnl -AC_LANG_POP(Objective C)dnl -])# AC_PROG_OBJCPP - - -# AC_LANG_COMPILER(Objective C) -# ----------------------------- -# Find the Objective C compiler. Must be AC_DEFUN'd to be AC_REQUIRE'able. -AC_DEFUN([AC_LANG_COMPILER(Objective C)], -[AC_REQUIRE([AC_PROG_OBJC])]) - - -# ac_cv_prog_objc -# --------------- -# We used to name the cache variable this way. -AU_DEFUN([ac_cv_prog_objc], -[ac_cv_objc_compiler_gnu]) - - -# AC_PROG_OBJC([LIST-OF-COMPILERS]) -# --------------------------------- -# LIST-OF-COMPILERS is a space separated list of Objective C compilers -# to search for (if not specified, a default list is used). This just gives -# the user an opportunity to specify an alternative search list for the -# Objective C compiler. -# cc Native compiler -# objc David Stes' Portable Object Compiler -AN_MAKEVAR([OBJC], [AC_PROG_OBJC]) -AN_PROGRAM([gcc], [AC_PROG_OBJC]) -AN_PROGRAM([cc], [AC_PROG_OBJC]) -AC_DEFUN([AC_PROG_OBJC], -[AC_LANG_PUSH(Objective C)dnl -AC_ARG_VAR([OBJC], [Objective C compiler command])dnl -AC_ARG_VAR([OBJCFLAGS], [Objective C compiler flags])dnl -_AC_ARG_VAR_LDFLAGS()dnl -_AC_ARG_VAR_CPPFLAGS()dnl -AC_CHECK_TOOLS(OBJC, - [$CCC m4_default([$1], - [gcc cc objc])], - gcc) - -# Provide some information about the compiler. -echo "$as_me:$LINENO:" \ - "checking for _AC_LANG compiler version" >&AS_MESSAGE_LOG_FD -ac_compiler=`set X $ac_compile; echo $[2]` -_AC_EVAL([$ac_compiler --version </dev/null >&AS_MESSAGE_LOG_FD]) -_AC_EVAL([$ac_compiler -v </dev/null >&AS_MESSAGE_LOG_FD]) -_AC_EVAL([$ac_compiler -V </dev/null >&AS_MESSAGE_LOG_FD]) - -m4_expand_once([_AC_COMPILER_EXEEXT])[]dnl -m4_expand_once([_AC_COMPILER_OBJEXT])[]dnl -_AC_LANG_COMPILER_GNU -GOBJC=`test $ac_compiler_gnu = yes && echo yes` -_AC_PROG_OBJC_G -AC_LANG_POP(Objective C)dnl -])# AC_PROG_OBJC - - -# _AC_PROG_OBJC_G -# --------------- -# Check whether -g works, even if OBJCFLAGS is set, in case the package -# plays around with OBJCFLAGS (such as to build both debugging and -# normal versions of a library), tasteless as that idea is. -m4_define([_AC_PROG_OBJC_G], -[ac_test_OBJCFLAGS=${OBJCFLAGS+set} -ac_save_OBJCFLAGS=$OBJCFLAGS -OBJCFLAGS="-g" -AC_CACHE_CHECK(whether $OBJC accepts -g, ac_cv_prog_objc_g, - [_AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], - [ac_cv_prog_objc_g=yes], - [ac_cv_prog_objc_g=no])]) -if test "$ac_test_OBJCFLAGS" = set; then - OBJCFLAGS=$ac_save_OBJCFLAGS -elif test $ac_cv_prog_objc_g = yes; then - if test "$GOBJC" = yes; then - OBJCFLAGS="-g -O2" - else - OBJCFLAGS="-g" - fi -else - if test "$GOBJC" = yes; then - OBJCFLAGS="-O2" - else - OBJCFLAGS= - fi -fi[]dnl -])# _AC_PROG_OBJC_G - - -## ------------------------------- ## -## 4. Compilers' characteristics. ## -## ------------------------------- ## - - -# -------------------------------- # -# 4b. C compiler characteristics. # -# -------------------------------- # - -# libobjc and objc header tests shere? |