Skip to content

Commit

Permalink
swpipe: Make swpipe properly use llvm
Browse files Browse the repository at this point in the history
* It should build now for most gcc4 folks
* Not in image yet
* Still is kind of crashy
  • Loading branch information
kallisti5 committed Jan 11, 2013
1 parent 4c3d44f commit 414ba3b
Showing 1 changed file with 42 additions and 115 deletions.
157 changes: 42 additions & 115 deletions src/add-ons/opengl/swpipe/Jamfile
@@ -1,10 +1,7 @@
SubDir HAIKU_TOP src add-ons opengl swpipe ;
SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;

UseHeaders [ FDirName $(HAIKU_MESA_DIR) src gallium auxiliary ] ;
UseHeaders [ FDirName $(HAIKU_MESA_DIR) src gallium drivers ] ;
UseHeaders [ FDirName $(HAIKU_MESA_DIR) src gallium include ] ;
UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mapi ] ;
UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa ] ;
UsePrivateHeaders interface ;

local sources =
SoftwareRenderer.cpp
Expand All @@ -13,117 +10,47 @@ local sources =
GalliumFramebuffer.cpp
bitmap_wrapper.cpp ;

local HAIKU_SWPIPE_DRIVER = $(HAIKU_GALLIUM_SOFTPIPE_LIB) ;

local llvmLibraries = ;
if $(HAIKU_LLVM_DIR) {
# TODO: Add LLVM OptionalBuildPackage
SubDirC++Flags [ FDefines HAVE_LLVM=0x0302 ] ;

# TODO: This is a hack for now
SubDirSysHdrs /boot/common/include ;
HAIKU_LLVM_DIR = /boot/common/lib ;

HAIKU_SWPIPE_DRIVER = $(HAIKU_GALLIUM_LLVMPIPE_LIB) ;

llvmLibraries =
$(HAIKU_LLVM_DIR)/libLLVMAsmParser.a
$(HAIKU_LLVM_DIR)/libLLVMInstrumentation.a
$(HAIKU_LLVM_DIR)/libLLVMLinker.a
$(HAIKU_LLVM_DIR)/libLLVMArchive.a
$(HAIKU_LLVM_DIR)/libLLVMBitReader.a
$(HAIKU_LLVM_DIR)/libLLVMDebugInfo.a
$(HAIKU_LLVM_DIR)/libLLVMJIT.a
$(HAIKU_LLVM_DIR)/libLLVMipo.a
$(HAIKU_LLVM_DIR)/libLLVMVectorize.a
$(HAIKU_LLVM_DIR)/libLLVMBitWriter.a
$(HAIKU_LLVM_DIR)/libLLVMTableGen.a
$(HAIKU_LLVM_DIR)/libLLVMHexagonCodeGen.a
$(HAIKU_LLVM_DIR)/libLLVMHexagonAsmPrinter.a
$(HAIKU_LLVM_DIR)/libLLVMHexagonDesc.a
$(HAIKU_LLVM_DIR)/libLLVMHexagonInfo.a
$(HAIKU_LLVM_DIR)/libLLVMNVPTXCodeGen.a
$(HAIKU_LLVM_DIR)/libLLVMNVPTXDesc.a
$(HAIKU_LLVM_DIR)/libLLVMNVPTXInfo.a
$(HAIKU_LLVM_DIR)/libLLVMNVPTXAsmPrinter.a
$(HAIKU_LLVM_DIR)/libLLVMMBlazeCodeGen.a
$(HAIKU_LLVM_DIR)/libLLVMMBlazeAsmParser.a
$(HAIKU_LLVM_DIR)/libLLVMMBlazeDisassembler.a
$(HAIKU_LLVM_DIR)/libLLVMMBlazeDesc.a
$(HAIKU_LLVM_DIR)/libLLVMMBlazeInfo.a
$(HAIKU_LLVM_DIR)/libLLVMMBlazeAsmPrinter.a
$(HAIKU_LLVM_DIR)/libLLVMCppBackendCodeGen.a
$(HAIKU_LLVM_DIR)/libLLVMCppBackendInfo.a
$(HAIKU_LLVM_DIR)/libLLVMMSP430CodeGen.a
$(HAIKU_LLVM_DIR)/libLLVMMSP430Desc.a
$(HAIKU_LLVM_DIR)/libLLVMMSP430AsmPrinter.a
$(HAIKU_LLVM_DIR)/libLLVMMSP430Info.a
$(HAIKU_LLVM_DIR)/libLLVMXCoreCodeGen.a
$(HAIKU_LLVM_DIR)/libLLVMXCoreDesc.a
$(HAIKU_LLVM_DIR)/libLLVMXCoreInfo.a
$(HAIKU_LLVM_DIR)/libLLVMCellSPUCodeGen.a
$(HAIKU_LLVM_DIR)/libLLVMCellSPUDesc.a
$(HAIKU_LLVM_DIR)/libLLVMCellSPUInfo.a
$(HAIKU_LLVM_DIR)/libLLVMMipsAsmParser.a
$(HAIKU_LLVM_DIR)/libLLVMMipsCodeGen.a
$(HAIKU_LLVM_DIR)/libLLVMMipsDesc.a
$(HAIKU_LLVM_DIR)/libLLVMMipsAsmPrinter.a
$(HAIKU_LLVM_DIR)/libLLVMMipsDisassembler.a
$(HAIKU_LLVM_DIR)/libLLVMMipsInfo.a
$(HAIKU_LLVM_DIR)/libLLVMARMAsmParser.a
$(HAIKU_LLVM_DIR)/libLLVMARMCodeGen.a
$(HAIKU_LLVM_DIR)/libLLVMARMDisassembler.a
$(HAIKU_LLVM_DIR)/libLLVMARMDesc.a
$(HAIKU_LLVM_DIR)/libLLVMARMInfo.a
$(HAIKU_LLVM_DIR)/libLLVMARMAsmPrinter.a
$(HAIKU_LLVM_DIR)/libLLVMPowerPCCodeGen.a
$(HAIKU_LLVM_DIR)/libLLVMPowerPCDesc.a
$(HAIKU_LLVM_DIR)/libLLVMPowerPCInfo.a
$(HAIKU_LLVM_DIR)/libLLVMPowerPCAsmPrinter.a
$(HAIKU_LLVM_DIR)/libLLVMSparcCodeGen.a
$(HAIKU_LLVM_DIR)/libLLVMSparcDesc.a
$(HAIKU_LLVM_DIR)/libLLVMSparcInfo.a
$(HAIKU_LLVM_DIR)/libLLVMX86AsmParser.a
$(HAIKU_LLVM_DIR)/libLLVMX86CodeGen.a
$(HAIKU_LLVM_DIR)/libLLVMSelectionDAG.a
$(HAIKU_LLVM_DIR)/libLLVMAsmPrinter.a
$(HAIKU_LLVM_DIR)/libLLVMX86Disassembler.a
$(HAIKU_LLVM_DIR)/libLLVMX86Desc.a
$(HAIKU_LLVM_DIR)/libLLVMX86Info.a
$(HAIKU_LLVM_DIR)/libLLVMX86AsmPrinter.a
$(HAIKU_LLVM_DIR)/libLLVMX86Utils.a
$(HAIKU_LLVM_DIR)/libLLVMMCDisassembler.a
$(HAIKU_LLVM_DIR)/libLLVMMCParser.a
$(HAIKU_LLVM_DIR)/libLLVMInterpreter.a
$(HAIKU_LLVM_DIR)/libLLVMCodeGen.a
$(HAIKU_LLVM_DIR)/libLLVMScalarOpts.a
$(HAIKU_LLVM_DIR)/libLLVMInstCombine.a
$(HAIKU_LLVM_DIR)/libLLVMTransformUtils.a
$(HAIKU_LLVM_DIR)/libLLVMipa.a
$(HAIKU_LLVM_DIR)/libLLVMAnalysis.a
$(HAIKU_LLVM_DIR)/libLLVMMCJIT.a
$(HAIKU_LLVM_DIR)/libLLVMRuntimeDyld.a
$(HAIKU_LLVM_DIR)/libLLVMExecutionEngine.a
$(HAIKU_LLVM_DIR)/libLLVMTarget.a
$(HAIKU_LLVM_DIR)/libLLVMMC.a
$(HAIKU_LLVM_DIR)/libLLVMObject.a
$(HAIKU_LLVM_DIR)/libLLVMCore.a
$(HAIKU_LLVM_DIR)/libLLVMSupport.a ;
}

UsePrivateHeaders interface ;
SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;

UseHeaders [ FDirName $(HAIKU_MESA_DIR) src gallium auxiliary ] ;
UseHeaders [ FDirName $(HAIKU_MESA_DIR) src gallium drivers ] ;
UseHeaders [ FDirName $(HAIKU_MESA_DIR) src gallium include ] ;
UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mapi ] ;
UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa ] ;

AddResources Software\ Renderer : SoftwareRenderer.rdef ;

Addon Software\ Renderer :
$(sources)
: libGL.so
$(HAIKU_SWPIPE_DRIVER)
$(HAIKU_MESA_LIB)
$(HAIKU_GLSL_LIB)
$(HAIKU_GALLIUM_LIB)
$(llvmLibraries)
be translation stdc++ $(TARGET_LIBSUPC++)
;
if FIsBuildFeatureEnabled(llvm) {
# LLVM Pipe enabled Gallium Software Renderer
# Requires:
# - LLVM optional package
# - Mesa optional package compiled with LLVM installed
SubDirC++Flags [ FDefines HAVE_LLVM=0x0302 ] ;

Addon Software\ Renderer :
$(sources)
:
libGL.so
$(HAIKU_GALLIUM_LLVMPIPE_LIB)
$(HAIKU_MESA_LIB)
$(HAIKU_GLSL_LIB)
$(HAIKU_GALLIUM_LIB)
$(HAIKU_LLVM_LIBS)
be translation stdc++ $(TARGET_LIBSUPC++)
;
} else {
# SoftPipe enabled Gallium Software Renderer
# Note: Slow and pointless for production use!
# Requires:
# - Mesa optional package compiled *without* LLVM installed.
Addon Software\ Renderer :
$(sources)
:
libGL.so
$(HAIKU_GALLIUM_SOFTPIPE_LIB)
$(HAIKU_MESA_LIB)
$(HAIKU_GLSL_LIB)
$(HAIKU_GALLIUM_LIB)
be translation stdc++ $(TARGET_LIBSUPC++)
;
}

0 comments on commit 414ba3b

Please sign in to comment.