Hi Joe, Sure, I'm happy to conclude this topic and hope it can help others as well.
To sum up, adding 3rd party libraries, which means libraries are not originated by Android but come from others, should edit the Android.mk. For the Android.mk format should be required following basic information, /======================== LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) ========================/ To start the new compile content in the same Android.mk should add include $(CLEAR_VARS) again such as, /======================== LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) [Compile Content part 1] ... include $(CLEAR_VARS) [Compile Content part 2] ... ========================/ (For more details such as LOCAL_MODULE and LOCAL_SRC_FILES..., please study more by yourselves) However, if you find no above basic information in some Android.mk, it should be already incleded in the parent directory, and you are looking into sub-directory. For example, you can see the Android.mk under "hardware \libhardware_legacy\flashlight\". You see no above basic information in this Android.mk, but you can find the information in the parent directory of flashliht, "hardware \libhardware_legacy" To adding the 3rd party libraries, you should have some basic knowledge about the libraries. For those *.a are for static libraries, and *.so are for shared libraries. Static Libraries: /============================== LOCAL_PREBUILT_LIBS := 1lib.a \ 2lib.a \ 3lib.a \ 4lib.a include $(BUILD_MULTI_PREBUILT) LOCAL_STATIC_LIBRARIES := 1lib \ 2lib \ 3lib \ 4lib ==============================/ Shared Libraries: /============================== LOCAL_PREBUILT_LIBS := alib.so include $(BUILD_MULTI_PREBUILT) LOCAL_SHARED_LIBRARIES := alib ==============================/ Remember, different kind of libraries should be required different way to ontegration!! Hope someone who has the same problem in the future can find this information useful!! BR John On Feb 11, 12:42 pm, Joe Onorato <j...@android.com> wrote: > Hi John, > > All of the Android.mk files that define modules have that pattern one way or > another. Some of them are a little more compilcated, and include other > files for lists of files, etc., and some do make tricks to define things > outside the normal patter, but the basic structure is as I said. > > What did you end up with? There have been a bunch of questions about this, > so your results might be helpful to others. > > -joe > > > > On Tue, Feb 10, 2009 at 11:04 PM, John Cola <jt...@marvell.com> wrote: > > > I've fixed it myself!!! > > Thank to all list in this thread, help me alot!! > > > On Feb 11, 11:54 am, John Cola <jt...@marvell.com> wrote: > > > Hi All > > > It is not because those Android.mk under "hardware\libhardware\ > > > [name_of_project]\" are not required LOCAL_PATH := $(call my-dir)" and > > > "include $(CLEAR_VARS)". > > > But because "hardware\libhardware\Android.mk" has done the job > > > already!! > > > So for those Android in the subdir should not requir LOCAL_PATH := $ > > > (call my-dir)" and "include $(CLEAR_VARS)" again!! > > > If I'm not correct, please tell me! > > > > BR > > > John > > > On Feb 11, 11:46 am, John Cola <jt...@marvell.com> wrote: > > > > > Hi Joe > > > > > I know many of the Android.mk need your suggestion 1 and 2. > > > > However, if you look into the Android.mk under hardware\libhardware\ > > > > [name_of_project]\ > > > > It is not required "LOCAL_PATH := $(call my-dir)" and "include $ > > > > (CLEAR_VARS) ". > > > > Although I've tried to add it to the Android.mk, it occure error so I > > > > decided to follow the original released format! > > > > And for those *.a libraries should be LOCAL_STATIC_LIBRARIES. I just > > > > need to integrate the static libraries into the framework and use it. > > > > But I don't know how to edit in Android.mk. > > > > > BR > > > > John > > > > On Feb 11, 11:12 am, Joe Onorato <j...@android.com> wrote: > > > > > > Hi, > > > > > > 1. You need to have the LOCAL_PATH := $(call my-dir) as the first > > line in > > > > > the makefile. Don't put this line in again after that. > > > > > > 2. At the beginning of the file, and after each of the include > > $(BUILD_*) > > > > > lines, except the last one, you need to have an include $(CLEAR_VARS) > > line. > > > > > So an Android.mk file looks like this: > > > > > > LOCAL_PATH := $(call my-dir) > > > > > > include $(CLEAR_VARS) > > > > > # Set some LOCAL_* variables > > > > > include $(BUILD_XXX) > > > > > > include $(CLEAR_VARS) > > > > > # Set some LOCAL_* variables > > > > > include $(BUILD_YYY) > > > > > > 3. If you are building a shared library, use the include > > > > > $(BUILD_SHARED_LIBRARY) at the end. However, you need to say what > > that > > > > > library is called. You do that by saying LOCAL_MODULE := > > > > > lib<your-lib-name>. I'm not sure which library you're trying to > > build in > > > > > your example, because you don't have a LOCAL_MODULE line, and I'm not > > even > > > > > sure if you're trying to build a shared library. > > > > > > This is the last time I am going to be posting to this thread. After > > that, > > > > > you are all going into my killfile. If you aren't going to read my > > posts, > > > > > I'm not going to spend time trying to help you. If you have more > > questions, > > > > > feel free to ask, but if you clearly haven't read this email or any > > of the > > > > > other ones on this list, I will just ignore you. > > > > > > -joe > > > > > > On Tue, Feb 10, 2009 at 9:27 PM, John Cola <jt...@marvell.com> > > wrote: > > > > > > > Hi Ravi > > > > > > > I am working on gps porting and need 3'rd party's libraries. > > > > > > Here is the contents I modified from > > mydroid\hardware\libhardware\gps > > > > > > \Android.mk > > > > > > > ============================================================ > > > > > > # Use hardware GPS implementation if available. > > > > > > # > > > > > > LOCAL_PREBUILT_LIBS := 3rdpartygps1.a \ > > > > > > 3rdpartygps2.a \ > > > > > > 3rdpartygps3.a \ > > > > > > 3rdpartygps4.a > > > > > > include $(BUILD_MULTI_PREBUILT) > > > > > > > BOARD_GPS_LIBRARIES := 3rdpartygps1 3rdpartygps2.a 3rdpartygps3.a > > > > > > 3rdpartygps4.a > > > > > > > ifneq ($(BOARD_GPS_LIBRARIES),) > > > > > > LOCAL_CFLAGS += -DHAVE_GPS_HARDWARE > > > > > > LOCAL_STATIC_LIBRARIES += $(BOARD_GPS_LIBRARIES) > > > > > > endif > > > > > > > # Use emulator GPS implementation if QEMU_HARDWARE is set. > > > > > > # > > > > > > USE_QEMU_GPS_HARDWARE := $(QEMU_HARDWARE) > > > > > > > ifeq ($(USE_QEMU_GPS_HARDWARE),true) > > > > > > LOCAL_CFLAGS += -DHAVE_QEMU_GPS_HARDWARE > > > > > > LOCAL_SRC_FILES += gps/gps_qemu.c > > > > > > endif > > > > > > > LOCAL_SRC_FILES += gps/gps.cpp > > > > > > ============================================================ > > > > > > > On Feb 10, 8:36 pm, rktb <yend...@pv.com> wrote: > > > > > > > Can you please post the exact contents of your makefile ? > > > > > > > > -Ravi > > > > > > > > On Feb 10, 2:00 am, John Cola <jt...@marvell.com> wrote: > > > > > > > > > Hi rktb > > > > > > > > I follow your method and encounter the following error > > > > > > > > Can you help me? > > > > > > > > > LOCAL_BUILT_MODULE and LOCAL_INSTALLED_MODULE must not be > > defined by > > > > > > > > component makefiles. Stop. > > > > > > > > > My 3'rd party's libraries are *.a. > > > > > > > > > On Feb 9, 12:07 pm, rktb <yend...@pv.com> wrote: > > > > > > > > > > Here you go...I verified that this works. > > > > > > > > > > ****************************************** > > > > > > > > > LOCAL_PATH := $(call my-dir) > > > > > > > > > MY_LOCAL_PATH := $(LOCAL_PATH) > > > > > > > > > include $(CLEAR_VARS) > > > > > > > > > > LOCAL_PREBUILT_LIBS := libabc.so > > > > > > > > > > include $(BUILD_MULTI_PREBUILT) > > > > > > > > > > LOCAL_PATH := $(MY_LOCAL_PATH) > > > > > > > > > include $(CLEAR_VARS) > > > > > > > > > > LOCAL_SRC_FILES := main.cpp > > > > > > > > > LOCAL_MODULE := mytest > > > > > > > > > LOCAL_SHARED_LIBRARIES := libabc > > > > > > > > > > include $(BUILD_EXECUTABLE) > > > > > > > > > ****************************************** > > > > > > > > > > -Ravi > > > > > > > > > > On Feb 8, 9:39 pm, Girish <htgir...@gmail.com> wrote: > > > > > > > > > > > Hi all, > > > > > > > > > > > Replaced the same with LOCAL_PATH := $(call my-dir) > > > > > > > > > > > find: `build/core/clear_vars.mk,build/core': No such file > > or > > > > > > directory > > > > > > > > > > make: execvp: /bin/bash: Argument list too long > > > > > > > > > > target Strip: libdl (out/target/product/obj/lib/libdl.so) > > > > > > > > > > Install: out/host/linux-x86/bin/vm-tests > > > > > > > > > > make: *** No rule to make target `build/core/clear_vars.mk > > ,build/ > > > > > > > > > > core', needed by `out/target/product/obj/EXECUTABLE > > > > > > > > > > > Anything to do with .so files ? main.c calls test.c and > > test.c > > > > > > calls > > > > > > > > > > apis deineds libs 3 libs which try to link with my > > executable.. > > > > > > main.c > > > > > > > > > > contains the entry point (int main ()) > > > > > > > > > > > The libs are generated using arm-linux-eabi and with > > glibc2.2. > > > > > > > > > > > Wht may be the issue ? > > > > > > > > > > > Regards- Hide quoted text - > > > > > > > > > > - Show quoted text -- Hide quoted text - > > > > > > > > - Show quoted text -- Hide quoted text - > > > > > > - Show quoted text -- Hide quoted text - > > > > > - Show quoted text -- Hide quoted text - > > > > - Show quoted text -- Hide quoted text - > > - Show quoted text - --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "android-framework" group. To post to this group, send email to android-framework@googlegroups.com To unsubscribe from this group, send email to android-framework+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-framework?hl=en -~----------~----~----~----~------~----~------~--~---