]> git.saurik.com Git - cycript.git/commitdiff
Ported things mentioned in DOUG comments.
authorDouglas William Thrift <douglas@douglasthrift.net>
Wed, 5 May 2010 03:54:47 +0000 (03:54 +0000)
committerDouglas William Thrift <douglas@douglasthrift.net>
Wed, 5 May 2010 03:54:47 +0000 (03:54 +0000)
Darwin.mk
GNUmakefile.in
Mach/Inject.cpp
configure
configure.ac
makefile

index 1289855210fd36fed9806c175b188056ea4478f4..20cff9b6c6e1176b9806ba6748eedc8c3a4a86ca 100644 (file)
--- a/Darwin.mk
+++ b/Darwin.mk
@@ -12,7 +12,7 @@ flags += -I/usr/include/ffi
 apr_config := /usr/bin/apr-1-config
 flags += -arch i386 -arch x86_64 #-arch armv6
 
-flags += -DCY_ATTACH
+flags += -DCY_ATTACH -DCY_LIBRARY='"/usr/lib/libcycript.dylib"'
 code += Handler.o
 inject += Mach/Inject.o
 Mach/Inject.o: Trampoline.t.hpp Baton.hpp
index e500b8653ce3dde79a14f05c9d314b739741a760..c7c7adcb2e6695406b140ade1f227d76ea6ee8f8 100644 (file)
@@ -23,7 +23,9 @@ sed := @SED@
 bison := @BISON@
 time := @TIME@
 gperf := @GPERF@
-otool := @OTOOL@
+otool := @_OTOOL@
+lipo := @_LIPO@
+nm := @_NM@
 
 INSTALL := @INSTALL@
 INSTALL_PROGRAM := @INSTALL_PROGRAM@
@@ -55,6 +57,7 @@ mandir := @mandir@
 CY_EXECUTE := @CY_EXECUTE@
 CY_OBJECTIVEC := @CY_OBJECTIVEC@
 CY_OBJECTIVEC_MACH := @CY_OBJECTIVEC_MACH@
+CY_ATTACH_GROUP := @CY_ATTACH_GROUP@
 
 svn := @SVN@
 svnversion := @SVNVERSION@
@@ -177,14 +180,13 @@ Struct.hpp:
 
 ifeq ($(CY_OBJECTIVEC_MACH),1)
 code += Handler.lo
-cflags += -DCY_ATTACH
+cflags += -DCY_ATTACH -DCY_LIBRARY='"$(libdir)/libcycript.@SO@"'
 inject += Mach/Inject.lo
 
 Mach/Inject.lo: Trampoline.t.hpp Baton.hpp
 
 %.t.hpp: %.t.cpp trampoline.sh Baton.hpp Trampoline.hpp
-       # DOUG: abstract "lipo" and "nm" with configure?
-       ./trampoline.sh $@ .libs/$*.t.o $* $(sed) $(otool) lipo nm $(libtool) --mode=compile $(cxx) -c -fno-stack-protector -fno-exceptions -I$(srcdir)/include -o $*.t.lo $< $(cflags)
+       $(srcdir)/trampoline.sh $@ .libs/$*.t.o $* $(sed) $(otool) $(lipo) $(nm) $(libtool) --mode=compile $(cxx) -c -fno-stack-protector -fno-exceptions -I$(srcdir)/include -o $*.t.lo $< $(cflags)
 endif
 endif
 
@@ -251,6 +253,10 @@ install: cycript libcycript.la
        $(INSTALL) -d $(DESTDIR)$(bindir) $(DESTDIR)$(libdir)
        $(libtool) --mode=install $(INSTALL_PROGRAM) libcycript.la $(DESTDIR)$(libdir)/libcycript.la
        $(libtool) --mode=install $(INSTALL_PROGRAM) cycript $(DESTDIR)$(bindir)/cycript
+ifneq ($(CY_ATTACH_GROUP),)
+       chgrp $(CY_ATTACH_GROUP) $(DESTDIR)$(bindir)/cycript
+       chmod g+s $(DESTDIR)$(bindir)/cycript
+endif
 
 uninstall:
        $(libtool) --mode=uninstall rm -f $(DESTDIR)$(bindir)/cycript
index f5673c24cfc7a72d51d549d615f0b9cfce8d4efd..0e893a0227317ad8d06665e9253a84f364beb74e 100644 (file)
@@ -54,8 +54,7 @@
 extern "C" void __pthread_set_self(pthread_t);
 
 void InjectLibrary(pid_t pid) {
-    // DOUG: turn this into some kind of -D passed from configure
-    const char *library("/usr/lib/libcycript.dylib");
+    const char *library(CY_LIBRARY);
 
     static const size_t Stack_(8 * 1024);
     size_t length(strlen(library) + 1), depth(sizeof(Baton) + length);
index acfcf0be81a1c789614e196c30f9c383991b1525..8a4edc5d70f5b217625fe8c182c500370a10439f 100755 (executable)
--- a/configure
+++ b/configure
@@ -745,7 +745,15 @@ ac_includes_default="\
 
 ac_subst_vars='LTLIBOBJS
 LIBOBJS
+CY_ATTACH_GROUP
 CY_OBJECTIVEC_MACH
+SO
+ac_ct__NM
+_NM
+ac_ct__LIPO
+_LIPO
+ac_ct__OTOOL
+_OTOOL
 LTLIBICONV
 LIBICONV
 GNUSTEP_CONFIG
@@ -4044,13 +4052,13 @@ if test "${lt_cv_nm_interface+set}" = set; then :
 else
   lt_cv_nm_interface="BSD nm"
   echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:4047: $ac_compile\"" >&5)
+  (eval echo "\"\$as_me:4055: $ac_compile\"" >&5)
   (eval "$ac_compile" 2>conftest.err)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:4050: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+  (eval echo "\"\$as_me:4058: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:4053: output\"" >&5)
+  (eval echo "\"\$as_me:4061: output\"" >&5)
   cat conftest.out >&5
   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
     lt_cv_nm_interface="MS dumpbin"
@@ -5256,7 +5264,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 5259 "configure"' > conftest.$ac_ext
+  echo '#line 5267 "configure"' > conftest.$ac_ext
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -6781,11 +6789,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:6784: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:6792: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:6788: \$? = $ac_status" >&5
+   echo "$as_me:6796: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -7120,11 +7128,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:7123: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:7131: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:7127: \$? = $ac_status" >&5
+   echo "$as_me:7135: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -7225,11 +7233,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:7228: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:7236: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:7232: \$? = $ac_status" >&5
+   echo "$as_me:7240: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -7280,11 +7288,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:7283: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:7291: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:7287: \$? = $ac_status" >&5
+   echo "$as_me:7295: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -9664,7 +9672,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 9667 "configure"
+#line 9675 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -9760,7 +9768,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 9763 "configure"
+#line 9771 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -13090,11 +13098,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13093: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13101: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:13097: \$? = $ac_status" >&5
+   echo "$as_me:13105: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -13189,11 +13197,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13192: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13200: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:13196: \$? = $ac_status" >&5
+   echo "$as_me:13204: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -13241,11 +13249,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13244: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13252: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:13248: \$? = $ac_status" >&5
+   echo "$as_me:13256: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -19355,14 +19363,321 @@ if test "x$CY_OBJECTIVEC" = x1; then :
        ac_fn_cxx_check_header_mongrel "$LINENO" "mach/mach.h" "ac_cv_header_mach_mach_h" "$ac_includes_default"
 if test "x$ac_cv_header_mach_mach_h" = x""yes; then :
 
-               case $OTOOL in #(
-  :) :
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Missing otool?" >&5
-$as_echo "$as_me: WARNING: Missing otool?" >&2;} ;; #(
-  *) :
-    CY_OBJECTIVEC_MACH=1
- ;;
+               if test -n "$ac_tool_prefix"; then
+  for ac_prog in otool
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog__OTOOL+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$_OTOOL"; then
+  ac_cv_prog__OTOOL="$_OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog__OTOOL="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+_OTOOL=$ac_cv_prog__OTOOL
+if test -n "$_OTOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_OTOOL" >&5
+$as_echo "$_OTOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$_OTOOL" && break
+  done
+fi
+if test -z "$_OTOOL"; then
+  ac_ct__OTOOL=$_OTOOL
+  for ac_prog in otool
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct__OTOOL+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct__OTOOL"; then
+  ac_cv_prog_ac_ct__OTOOL="$ac_ct__OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct__OTOOL="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct__OTOOL=$ac_cv_prog_ac_ct__OTOOL
+if test -n "$ac_ct__OTOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct__OTOOL" >&5
+$as_echo "$ac_ct__OTOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct__OTOOL" && break
+done
+
+  if test "x$ac_ct__OTOOL" = x; then
+    _OTOOL=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
 esac
+    _OTOOL=$ac_ct__OTOOL
+  fi
+fi
+
+               if test "x$_OTOOL" = x; then :
+  as_fn_error "You need otool" "$LINENO" 5
+fi
+               if test -n "$ac_tool_prefix"; then
+  for ac_prog in lipo
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog__LIPO+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$_LIPO"; then
+  ac_cv_prog__LIPO="$_LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog__LIPO="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+_LIPO=$ac_cv_prog__LIPO
+if test -n "$_LIPO"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_LIPO" >&5
+$as_echo "$_LIPO" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$_LIPO" && break
+  done
+fi
+if test -z "$_LIPO"; then
+  ac_ct__LIPO=$_LIPO
+  for ac_prog in lipo
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct__LIPO+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct__LIPO"; then
+  ac_cv_prog_ac_ct__LIPO="$ac_ct__LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct__LIPO="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct__LIPO=$ac_cv_prog_ac_ct__LIPO
+if test -n "$ac_ct__LIPO"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct__LIPO" >&5
+$as_echo "$ac_ct__LIPO" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct__LIPO" && break
+done
+
+  if test "x$ac_ct__LIPO" = x; then
+    _LIPO=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    _LIPO=$ac_ct__LIPO
+  fi
+fi
+
+               if test "x$_LIPO" = x; then :
+  as_fn_error "You need lipo" "$LINENO" 5
+fi
+               if test -n "$ac_tool_prefix"; then
+  for ac_prog in nm
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog__NM+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$_NM"; then
+  ac_cv_prog__NM="$_NM" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog__NM="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+_NM=$ac_cv_prog__NM
+if test -n "$_NM"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_NM" >&5
+$as_echo "$_NM" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$_NM" && break
+  done
+fi
+if test -z "$_NM"; then
+  ac_ct__NM=$_NM
+  for ac_prog in nm
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct__NM+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct__NM"; then
+  ac_cv_prog_ac_ct__NM="$ac_ct__NM" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct__NM="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct__NM=$ac_cv_prog_ac_ct__NM
+if test -n "$ac_ct__NM"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct__NM" >&5
+$as_echo "$ac_ct__NM" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct__NM" && break
+done
+
+  if test "x$ac_ct__NM" = x; then
+    _NM=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    _NM=$ac_ct__NM
+  fi
+fi
+
+               if test "x$_NM" = x; then :
+  as_fn_error "You need nm" "$LINENO" 5
+fi
+               SO=$acl_shlibext
+
+               CY_OBJECTIVEC_MACH=1
+
+               CY_ATTACH_GROUP=procmod
+
 
 fi
 
index 91fd7ffd8753541a99632e59fb5488374782e4d1..a89979c83a2897fcd48ec0e408acd408dd9036f5 100644 (file)
@@ -198,7 +198,15 @@ AS_CASE([$am_cv_func_iconv], [yes], [], [AC_MSG_ERROR([You need iconv])])
 AC_LANG_POP([C])
 AS_IF([test "x$CY_OBJECTIVEC" = x1], [
        AC_CHECK_HEADER([mach/mach.h], [
-               AS_CASE([$OTOOL], [:], [AC_MSG_WARN([Missing otool?])], [AC_SUBST([CY_OBJECTIVEC_MACH], [1])])
+               AC_CHECK_TOOLS([_OTOOL], [otool])
+               AS_IF([test "x$_OTOOL" = x], [AC_MSG_ERROR([You need otool])])
+               AC_CHECK_TOOLS([_LIPO], [lipo])
+               AS_IF([test "x$_LIPO" = x], [AC_MSG_ERROR([You need lipo])])
+               AC_CHECK_TOOLS([_NM], [nm])
+               AS_IF([test "x$_NM" = x], [AC_MSG_ERROR([You need nm])])
+               AC_SUBST([SO], [$acl_shlibext])
+               AC_SUBST([CY_OBJECTIVEC_MACH], [1])
+               AC_SUBST([CY_ATTACH_GROUP], [procmod])
        ])
 ])
 AS_IF([test "x$GMAKE" != xmake], [
index 1de908ece886f34e0c0f7cdfa77136a6e7a9ac46..3df44501251d5efe4129c4384f25d1693eb59263 100644 (file)
--- a/makefile
+++ b/makefile
@@ -161,11 +161,9 @@ test: $(deb)
 install: cycript $(lib)cycript.$(dll)
        sudo cp -p cycript /usr/bin
        sudo cp -p $(lib)cycript.$(dll) /usr/lib
-       # DOUG: this needs to be ported to GNUmakefile
        sudo chgrp procmod /usr/bin/cycript
        sudo chmod g+s /usr/bin/cycript
 
-# DOUG: this needs to be ported to GNUmakefile
 uninstall:
        sudo rm -f /usr/bin/cycript /usr/lib/libcycript.dylib