Skip to content

Commit

Permalink
Revert commit 145449 (ddunbar) since it is breaking the dragonegg bui…
Browse files Browse the repository at this point in the history
…ldbots.

Original commit message:
llvm-config: Replace with C++ version (was llvm-config-2).
 - Reapply of r144300, with lots of fixes/migration easement in between.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145582 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
CunningBaldrick committed Dec 1, 2011
1 parent 7d5a61e commit f6ace19
Show file tree
Hide file tree
Showing 17 changed files with 1,303 additions and 426 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@ endif()

set(LLVMBUILDTOOL "${LLVM_MAIN_SRC_DIR}/utils/llvm-build/llvm-build")
set(LLVMCONFIGLIBRARYDEPENDENCIESINC
"${LLVM_BINARY_DIR}/tools/llvm-config/LibraryDependencies.inc")
"${LLVM_BINARY_DIR}/tools/llvm-config-2/LibraryDependencies.inc")
set(LLVMBUILDCMAKEFRAG
"${LLVM_BINARY_DIR}/LLVMBuild.cmake")
message(STATUS "Constructing LLVMBuild project information")
Expand Down
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@ LEVEL := .
ifneq ($(findstring llvmCore, $(RC_ProjectName)),llvmCore) # Normal build (not "Apple-style").

ifeq ($(BUILD_DIRS_ONLY),1)
DIRS := lib/Support lib/TableGen utils tools/llvm-config
DIRS := lib/Support lib/TableGen utils tools/llvm-config-2
OPTIONAL_DIRS := tools/clang/utils/TableGen
else
DIRS := lib/Support lib/TableGen utils lib/VMCore lib tools/llvm-shlib \
tools/llvm-config tools runtime docs unittests
tools/llvm-config tools/llvm-config-2 tools runtime docs unittests
OPTIONAL_DIRS := projects bindings
endif

Expand Down
6 changes: 3 additions & 3 deletions Makefile.rules
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ LLVMBuildTool := $(PROJ_SRC_ROOT)/utils/llvm-build/llvm-build
# The files we are going to generate using llvm-build.
LLVMBuildMakeFrag := $(PROJ_OBJ_ROOT)/Makefile.llvmbuild
LLVMConfigLibraryDependenciesInc := \
$(PROJ_OBJ_ROOT)/tools/llvm-config/LibraryDependencies.inc
$(PROJ_OBJ_ROOT)/tools/llvm-config-2/LibraryDependencies.inc

# This is for temporary backwards compatibility.
ifndef TARGET_NATIVE_ARCH
Expand Down Expand Up @@ -528,9 +528,9 @@ ifndef LLVM_TBLGEN
endif
endif
ifeq ($(LLVM_CROSS_COMPILING),1)
LLVM_CONFIG := $(BuildLLVMToolDir)/llvm-config$(BUILD_EXEEXT)
LLVM_CONFIG := $(BuildLLVMToolDir)/llvm-config-2$(BUILD_EXEEXT)
else
LLVM_CONFIG := $(LLVMToolDir)/llvm-config$(EXEEXT)
LLVM_CONFIG := $(LLVMToolDir)/llvm-config-2$(EXEEXT)
endif
ifndef LLVMLD
LLVMLD := $(LLVMToolDir)/llvm-ld$(EXEEXT)
Expand Down
3 changes: 3 additions & 0 deletions autoconf/configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -1578,6 +1578,9 @@ if test -f ${srcdir}/tools/clang/README.txt; then
AC_CONFIG_FILES([tools/clang/docs/doxygen.cfg])
fi

dnl Do the first stage of configuration for llvm-config.in.
AC_CONFIG_FILES([tools/llvm-config/llvm-config.in])

dnl OCaml findlib META file
AC_CONFIG_FILES([bindings/ocaml/llvm/META.llvm])

Expand Down
2 changes: 1 addition & 1 deletion configure
Original file line number Diff line number Diff line change
Expand Up @@ -21100,7 +21100,7 @@ if test -f ${srcdir}/tools/clang/README.txt; then

fi


ac_config_files="$ac_config_files tools/llvm-config/llvm-config.in"


ac_config_files="$ac_config_files bindings/ocaml/llvm/META.llvm"
Expand Down
11 changes: 9 additions & 2 deletions tools/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,16 @@ if( EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/polly/CMakeLists.txt )
endif( EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/polly/CMakeLists.txt )

if( NOT WIN32 OR MSYS OR CYGWIN )
# We currently require 'sed' to build llvm-config, so don't try to build it
# on pure Win32.
# It is useful to build llvm-config before the other tools, so we
# have a fresh LibDeps.txt for regenerating the hard-coded library
# dependencies. llvm-config/CMakeLists.txt takes care of this but we
# must keep llvm-config as the first entry on the list of tools to
# be built.
add_subdirectory(llvm-config)

# We currently require 'sed' to build llvm-config-2, so don't try to build it
# on pure Win32.
add_subdirectory(llvm-config-2)
endif()

add_subdirectory(opt)
Expand Down
2 changes: 1 addition & 1 deletion tools/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ PARALLEL_DIRS := opt llvm-as llvm-dis \
bugpoint llvm-bcanalyzer llvm-stub \
llvm-diff macho-dump llvm-objdump \
llvm-rtdyld llvm-dwarfdump llvm-cov \
llvm-size
llvm-size llvm-config-2

# Let users override the set of tools to build from the command line.
ifdef ONLY_TOOLS
Expand Down
26 changes: 26 additions & 0 deletions tools/llvm-config-2/BuildVariables.inc.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
//===-- BuildVariables.inc.in - llvm-config build variables -*- C++ -*-----===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// This file is configured by the build system to define the variables
// llvm-config wants to report to the user, but which can only be determined at
// build time.
//
// The non .in variant of this file has been autogenerated by the LLVM build. Do
// not edit!
//
//===----------------------------------------------------------------------===//

#define LLVM_SRC_ROOT "@LLVM_SRC_ROOT@"
#define LLVM_OBJ_ROOT "@LLVM_OBJ_ROOT@"
#define LLVM_CPPFLAGS "@LLVM_CPPFLAGS@"
#define LLVM_CFLAGS "@LLVM_CFLAGS@"
#define LLVM_LDFLAGS "@LLVM_LDFLAGS@"
#define LLVM_CXXFLAGS "@LLVM_CXXFLAGS@"
#define LLVM_BUILDMODE "@LLVM_BUILDMODE@"
#define LLVM_SYSTEM_LIBS "@LLVM_SYSTEM_LIBS@"
41 changes: 41 additions & 0 deletions tools/llvm-config-2/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
set(LLVM_LINK_COMPONENTS support)

# We need to generate the BuildVariables.inc file containing values which are
# only defined when under certain build modes. Unfortunately, that precludes
# doing this inside CMake so we have to shell out to sed. For now, that means we
# can't expect to build llvm-config on Window.s
set(BUILDVARIABLES_SRCPATH ${CMAKE_CURRENT_SOURCE_DIR}/BuildVariables.inc.in)
set(BUILDVARIABLES_OBJPATH ${CMAKE_CURRENT_BINARY_DIR}/BuildVariables.inc)
set(SEDSCRIPT_OBJPATH ${CMAKE_CURRENT_BINARY_DIR}/BuildVariables.configure.sed)

# Compute the substitution values for various items.
get_system_libs(LLVM_SYSTEM_LIBS_LIST)
foreach(l ${LLVM_SYSTEM_LIBS_LIST})
set(SYSTEM_LIBS ${SYSTEM_LIBS} "-l${l}")
endforeach()
set(C_FLGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}")
set(CXX_FLGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}")
set(CPP_FLGS "${CMAKE_CPP_FLAGS} ${CMAKE_CPP_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}")

add_custom_command(OUTPUT ${BUILDVARIABLES_OBJPATH}
COMMAND echo s!@LLVM_SRC_ROOT@!${LLVM_MAIN_SRC_DIR}! > ${SEDSCRIPT_OBJPATH}
COMMAND echo s!@LLVM_OBJ_ROOT@!${LLVM_BINARY_DIR}! >> ${SEDSCRIPT_OBJPATH}
COMMAND echo s!@LLVM_CPPFLAGS@!${CPP_FLGS}! >> ${SEDSCRIPT_OBJPATH}
COMMAND echo s!@LLVM_CFLAGS@!${C_FLGS}! >> ${SEDSCRIPT_OBJPATH}
COMMAND echo s!@LLVM_CXXFLAGS@!${CXX_FLGS}! >> ${SEDSCRIPT_OBJPATH}
# TODO: Use general flags for linking! not just for shared libs:
COMMAND echo s!@LLVM_LDFLAGS@!${CMAKE_SHARED_LINKER_FLAGS}! >> ${SEDSCRIPT_OBJPATH}
COMMAND echo s!@LLVM_BUILDMODE@!${CMAKE_BUILD_TYPE}! >> ${SEDSCRIPT_OBJPATH}
COMMAND echo s!@LLVM_SYSTEM_LIBS@!${SYSTEM_LIBS}! >> ${SEDSCRIPT_OBJPATH}
COMMAND sed -f ${SEDSCRIPT_OBJPATH} < ${BUILDVARIABLES_SRCPATH} > ${BUILDVARIABLES_OBJPATH}
VERBATIM
COMMENT "Building BuildVariables.inc include."
)

# Add the llvm-config tool.
add_llvm_tool(llvm-config-2
llvm-config.cpp
)

# Add the dependency on the generation step.
add_file_dependencies(${CMAKE_CURRENT_SOURCE_DIR}/llvm-config.cpp ${BUILDVARIABLES_OBJPATH})
57 changes: 57 additions & 0 deletions tools/llvm-config-2/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
##===- tools/llvm-config/Makefile---------------------------*- Makefile -*-===##
#
# The LLVM Compiler Infrastructure
#
# This file is distributed under the University of Illinois Open Source
# License. See LICENSE.TXT for details.
#
##===----------------------------------------------------------------------===##

LEVEL := ../..
TOOLNAME := llvm-config-2
USEDLIBS := LLVMSupport.a

# We generate sources in the build directory, make sure it is in the include
# paths.
INCLUDE_BUILD_DIR := 1

# This tool has no plugins, optimize startup time.
TOOL_NO_EXPORTS := 1

# Note that we have to use lazy expansion here.
BUILDVARIABLES_SRCPATH = $(PROJ_SRC_ROOT)/tools/$(TOOLNAME)/BuildVariables.inc.in
BUILDVARIABLES_OBJPATH = $(ObjDir)/BuildVariables.inc
BUILT_SOURCES = $(BUILDVARIABLES_OBJPATH)

include $(LEVEL)/Makefile.common

# Combine preprocessor flags (except for -I) and CXX flags.
SUB_CPPFLAGS := ${CPP.BaseFlags}
SUB_CFLAGS := ${CPP.BaseFlags} ${C.Flags}
SUB_CXXFLAGS := ${CPP.BaseFlags} ${CXX.Flags}

# This is blank for now. We need to be careful about adding stuff here:
# LDFLAGS tend not to be portable, and we don't currently require the
# user to use libtool when linking against LLVM.
SUB_LDFLAGS :=

$(ObjDir)/BuildVariables.inc: $(BUILDVARIABLES_SRCPATH) Makefile $(ObjDir)/.dir
$(Echo) "Building llvm-config BuildVariables.inc file."
$(Verb) $(ECHO) 's/@LLVM_SRC_ROOT@/$(subst /,\/,$(LLVM_SRC_ROOT))/' \
> temp.sed
$(Verb) $(ECHO) 's/@LLVM_OBJ_ROOT@/$(subst /,\/,$(LLVM_OBJ_ROOT))/' \
>> temp.sed
$(Verb) $(ECHO) 's/@LLVM_CPPFLAGS@/$(subst /,\/,$(SUB_CPPFLAGS))/' \
>> temp.sed
$(Verb) $(ECHO) 's/@LLVM_CFLAGS@/$(subst /,\/,$(SUB_CFLAGS))/' \
>> temp.sed
$(Verb) $(ECHO) 's/@LLVM_CXXFLAGS@/$(subst /,\/,$(SUB_CXXFLAGS))/' \
>> temp.sed
$(Verb) $(ECHO) 's/@LLVM_LDFLAGS@/$(subst /,\/,$(SUB_LDFLAGS))/' \
>> temp.sed
$(Verb) $(ECHO) 's/@LLVM_BUILDMODE@/$(subst /,\/,$(BuildMode))/' \
>> temp.sed
$(Verb) $(ECHO) 's/@LLVM_SYSTEM_LIBS@/$(subst /,\/,$(LIBS))/' \
>> temp.sed
$(Verb) $(SED) -f temp.sed < $< > $@
$(Verb) $(RM) temp.sed
Loading

0 comments on commit f6ace19

Please sign in to comment.