# Copyright (C) 2008 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. LOCAL_PATH:= $(call my-dir) # libutils is a little unique: It's built twice, once for the host # and once for the device. commonSources:= \ Asset.cpp \ AssetDir.cpp \ AssetManager.cpp \ BufferedTextOutput.cpp \ CallStack.cpp \ Debug.cpp \ FileMap.cpp \ RefBase.cpp \ ResourceTypes.cpp \ SharedBuffer.cpp \ Static.cpp \ StopWatch.cpp \ String8.cpp \ String16.cpp \ SystemClock.cpp \ TextOutput.cpp \ Threads.cpp \ TimerProbe.cpp \ Timers.cpp \ VectorImpl.cpp \ ZipFileCRO.cpp \ ZipFileRO.cpp \ ZipUtils.cpp \ misc.cpp \ ported.cpp \ LogSocket.cpp # # The cpp files listed here do not belong in the device # build. Consult with the swetland before even thinking about # putting them in commonSources. # # They're used by the simulator runtime and by host-side tools like # aapt and the simulator front-end. # hostSources:= \ InetAddress.cpp \ Pipe.cpp \ Socket.cpp \ ZipEntry.cpp \ ZipFile.cpp # For the host # ===================================================== include $(CLEAR_VARS) LOCAL_SRC_FILES:= $(commonSources) $(hostSources) ifeq ($(HOST_OS),linux) # Use the futex based mutex and condition variable # implementation from android-arm because it's shared mem safe LOCAL_SRC_FILES += \ futex_synchro.c \ executablepath_linux.cpp endif ifeq ($(HOST_OS),darwin) LOCAL_SRC_FILES += \ executablepath_darwin.cpp endif LOCAL_MODULE:= libutils LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) LOCAL_C_INCLUDES += external/zlib ifeq ($(HOST_OS),windows) ifeq ($(strip $(USE_CYGWIN),),) # Under MinGW, ctype.h doesn't need multi-byte support LOCAL_CFLAGS += -DMB_CUR_MAX=1 endif endif include $(BUILD_HOST_STATIC_LIBRARY) # For the device # ===================================================== include $(CLEAR_VARS) # we have the common sources, plus some device-specific stuff LOCAL_SRC_FILES:= \ $(commonSources) \ Binder.cpp \ BpBinder.cpp \ IInterface.cpp \ IMemory.cpp \ IPCThreadState.cpp \ MemoryDealer.cpp \ MemoryBase.cpp \ MemoryHeapBase.cpp \ MemoryHeapPmem.cpp \ Parcel.cpp \ ProcessState.cpp \ IPermissionController.cpp \ IServiceManager.cpp \ Unicode.cpp \ BackupData.cpp \ BackupHelpers.cpp ifeq ($(TARGET_SIMULATOR),true) LOCAL_SRC_FILES += $(hostSources) endif ifeq ($(TARGET_OS),linux) # Use the futex based mutex and condition variable # implementation from android-arm because it's shared mem safe LOCAL_SRC_FILES += futex_synchro.c LOCAL_LDLIBS += -lrt -ldl endif LOCAL_C_INCLUDES += \ external/zlib \ external/icu4c/common LOCAL_LDLIBS += -lpthread LOCAL_SHARED_LIBRARIES := \ libz \ liblog \ libcutils ifneq ($(TARGET_SIMULATOR),true) ifeq ($(TARGET_OS)-$(TARGET_ARCH),linux-x86) # This is needed on x86 to bring in dl_iterate_phdr for CallStack.cpp LOCAL_SHARED_LIBRARIES += \ libdl endif # linux-x86 endif # sim LOCAL_MODULE:= libutils #LOCAL_CFLAGS+= #LOCAL_LDFLAGS:= include $(BUILD_SHARED_LIBRARY)