llvm-config-2: Use USEDLIBS directly instead of LINK_COMPONENTS, which will
[oota-llvm.git] / tools / llvm-config / llvm-config.in.in
index fd3904235345fd60812e3ae59e8f079ab9e92daa..d811e59abb52571bce2d55ba7d95ced3b1d9fb57 100644 (file)
@@ -18,6 +18,7 @@
 use 5.006;
 use strict;
 use warnings;
+use Cwd 'abs_path';
 
 #---- begin autoconf values ----
 my $PACKAGE_NAME        = q{@PACKAGE_NAME@};
@@ -26,17 +27,6 @@ my $PREFIX              = q{@LLVM_PREFIX@};
 my $LLVM_CONFIGTIME     = q{@LLVM_CONFIGTIME@};
 my $LLVM_SRC_ROOT       = q{@abs_top_srcdir@};
 my $LLVM_OBJ_ROOT       = q{@abs_top_builddir@};
-my $LLVM_ON_WIN32       = q{@LLVM_ON_WIN32@};
-my $LLVM_ON_UNIX        = q{@LLVM_ON_UNIX@};
-my $LLVMGCCDIR          = q{@LLVMGCCDIR@};
-my $LLVMGCC             = q{@LLVMGCC@};
-my $LLVMGXX             = q{@LLVMGXX@};
-my $LLVMGCC_VERSION     = q{@LLVMGCC_VERSION@};
-my $LLVMGCC_MAJVERS     = q{@LLVMGCC_MAJVERS@};
-my $ENDIAN              = q{@ENDIAN@};
-my $SHLIBEXT            = q{@SHLIBEXT@};
-my $EXEEXT              = q{@EXEEXT@};
-my $OS                  = q{@OS@};
 my $ARCH                = lc(q{@ARCH@});
 my $TARGET_TRIPLE       = q{@target@};
 my $TARGETS_TO_BUILD    = q{@TARGETS_TO_BUILD@};
@@ -55,6 +45,7 @@ my $CXXFLAGS            = q{@LLVM_CXXFLAGS@};
 my $LDFLAGS             = q{@LLVM_LDFLAGS@};
 my $SYSTEM_LIBS         = q{@LIBS@};
 my $LLVM_BUILDMODE      = q{@LLVM_BUILDMODE@};
+my $LLVM_OBJ_SUFFIX     = q{@LLVM_OBJ_SUFFIX@};
 #---- end Makefile values ----
 
 # Figure out where llvm-config is being run from.  Primarily, we care if it has
@@ -64,20 +55,14 @@ my $LLVM_BUILDMODE      = q{@LLVM_BUILDMODE@};
 # Convert the current executable name into its directory (e.g. ".").
 my ($RUN_DIR) = ($0 =~ /^(.*)\/.*$/);
 
-# Find the unix pwd program: we don't want to use the bash builtin, as it does
-# not look through symlinks etc.
-my $PWD = `which pwd`;
-chomp($PWD);
-$PWD = "pwd" if (!-e $PWD);
-
 # Turn the directory into an absolute directory on the file system, also pop up
 # from "bin" into the build or prefix dir.
-my $ABS_RUN_DIR = `cd $RUN_DIR/..; $PWD`;
+my $ABS_RUN_DIR = abs_path("$RUN_DIR/..");
 chomp($ABS_RUN_DIR);
 
 # Compute the absolute object directory build, e.g. "foo/llvm/Debug".
-my $ABS_OBJ_ROOT = "$LLVM_OBJ_ROOT/$LLVM_BUILDMODE";
-$ABS_OBJ_ROOT = `cd $ABS_OBJ_ROOT; $PWD` if (-d $ABS_OBJ_ROOT);
+my $ABS_OBJ_ROOT = "$LLVM_OBJ_ROOT$LLVM_OBJ_SUFFIX";
+$ABS_OBJ_ROOT = abs_path("$ABS_OBJ_ROOT") if (-d $ABS_OBJ_ROOT);
 chomp($ABS_OBJ_ROOT);
 
 my $INCLUDEDIR = "$ABS_RUN_DIR/include";
@@ -145,9 +130,9 @@ foreach my $arg (@ARGV) {
         } elsif ($arg eq "--build-mode") {
             $has_opt = 1; print "$LLVM_BUILDMODE\n";
         } elsif ($arg eq "--obj-root") {
-            $has_opt = 1; print `cd $LLVM_OBJ_ROOT/; $PWD`;
+            $has_opt = 1; print abs_path("$LLVM_OBJ_ROOT/");
         } elsif ($arg eq "--src-root") {
-            $has_opt = 1; print `cd $LLVM_SRC_ROOT/; $PWD`;
+            $has_opt = 1; print abs_path("$LLVM_SRC_ROOT/");
         } else {
             usage();
         }
@@ -212,8 +197,7 @@ Options:
   --build-mode       Print build mode of LLVM tree (e.g. Debug or Release).
 Typical components:
   all                All LLVM libraries (default).
-  backend            Either a native backend or the C backend.
-  engine             Either a native JIT or a bytecode interpreter.
+  engine             Either a native JIT or a bitcode interpreter.
 __EOD__
     exit(1);
 }
@@ -330,12 +314,16 @@ sub build_name_map {
     }
 
     # Add target-specific entries
+    my @all_targets;
     foreach my $target (@TARGETS_BUILT) {
         # FIXME: Temporary, until we don't switch all targets
         if (defined $NAME_MAP{$target.'asmprinter'}) {
             $NAME_MAP{$target} = [$target.'info',
                                   $target.'asmprinter', 
                                   $target.'codegen']
+        } elsif (defined $NAME_MAP{$target.'codegen'}) {
+            $NAME_MAP{$target} = [$target.'info',
+                                  $target.'codegen']
         } else {
             $NAME_MAP{$target} = [$target.'info',
                                   $NAME_MAP{$target}[0]]
@@ -344,13 +332,19 @@ sub build_name_map {
         if (defined $NAME_MAP{$target.'asmparser'}) {
             push @{$NAME_MAP{$target}},$target.'asmparser'
         }
+
+        if (defined $NAME_MAP{$target.'disassembler'}) {
+            push @{$NAME_MAP{$target}},$target.'disassembler'
+        }
+
+        push @all_targets, $target;
     }
 
     # Add virtual entries.
     $NAME_MAP{'native'}  = have_native_backend() ? [$ARCH] : [];
     $NAME_MAP{'nativecodegen'} = have_native_backend() ? [$ARCH.'codegen'] : [];
-    $NAME_MAP{'backend'} = have_native_backend() ? ['native'] : ['cbackend'];
     $NAME_MAP{'engine'}  = find_best_engine;
+    $NAME_MAP{'all-targets'}     = \@all_targets;
     $NAME_MAP{'all'}     = [name_map_entries];   # Must be last.
 }