summaryrefslogblamecommitdiffstats
path: root/package/bzip2/bzip2.mk
blob: 1bc44497cc89fe4b382cd91ba2da466a576c2c2a (plain) (tree)
1
2
3
4
5
6
7
8
9




                                                             
                    
                  

                                                
                         
 

                                                        
                                                                                 



                                                                 
 





                                                                 
 
                          
                                                        
     
 










                                                                       


                                                          
                                                                  
                                                 
                                      


                                                                  
         
     
 
                                                           
                                
                                                                     

                                                         
                                                                 
                                    
                                                                  
                                                                
                                                              
         
                                    






                                         
     
 
                       





                                                             

                               
 

                                                        
                                                                                 



                                                               
 











                                                                     
                          
                               
#############################################################
#
# bzip2
#
#############################################################
BZIP2_VERSION:=1.0.5
BZIP2_SONAME=1.0.4
BZIP2_SOURCE:=bzip2-$(BZIP2_VERSION).tar.gz
BZIP2_SITE:=http://www.bzip.org/$(BZIP2_VERSION)
BZIP2_INSTALL_STAGING=YES

define BZIP2_FIX_MAKEFILE
	$(SED) "s,ln \$$(,ln -snf \$$(,g" $(@D)/Makefile
	$(SED) "s,ln -s (lib.*),ln -snf \$$1; ln -snf libbz2.so.$(BZIP2_SONAME) \
	    libbz2.so,g" $(@D)/Makefile-libbz2_so
	$(SED) "s:-O2:$(TARGET_CFLAGS):" $(@D)/Makefile
	$(SED) "s:-O2:$(TARGET_CFLAGS):" $(@D)/Makefile-libbz2_so
endef

BZIP2_POST_PATCH_HOOKS += BZIP2_FIX_MAKEFILE

define BZIP2_NOLARGEFILE_FIX_MAKEFILE
	$(SED) "s,^BIGFILES,#BIGFILES,g" $(@D)/Makefile
	$(SED) "s,^BIGFILES,#BIGFILES,g" $(@D)/Makefile-libbz2_so
endef

ifneq ($(BR2_LARGEFILE),y)
BZIP2_POST_PATCH_HOOKS += BZIP2_NOLARGEFILE_FIX_MAKEFILE
endif

define BZIP2_BUILD_CMDS
	$(TARGET_MAKE_ENV) \
	$(MAKE) -C $(@D) -f Makefile-libbz2_so \
	CC="$(TARGET_CC)" RANLIB="$(TARGET_RANLIB)" AR="$(TARGET_AR)"
	$(TARGET_MAKE_ENV) \
	$(MAKE) -C $(@D) \
	CC="$(TARGET_CC)" RANLIB="$(TARGET_RANLIB)" AR="$(TARGET_AR)" \
	libbz2.a bzip2 bzip2recover
endef

define BZIP2_INSTALL_STAGING_CMDS
	$(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) \
	$(MAKE) PREFIX=$(STAGING_DIR)/usr -C $(@D) install
	$(INSTALL) -m 0755 -d $(STAGING_DIR)/usr/lib
	cp $(@D)/libbz2.so.$(BZIP2_SONAME) $(STAGING_DIR)/usr/lib/
	cp $(@D)/libbz2.a $(STAGING_DIR)/usr/lib/
	(cd $(STAGING_DIR)/usr/lib/; \
		ln -snf libbz2.so.$(BZIP2_SONAME) libbz2.so; \
		ln -snf libbz2.so.$(BZIP2_SONAME) libbz2.so.1.0; \
		ln -snf libbz2.so.$(BZIP2_SONAME) libbz2.so.1; \
	)
endef

# make sure busybox doesn't get overwritten by make install
define BZIP2_INSTALL_TARGET_CMDS
	rm -f $(addprefix $(TARGET_DIR)/usr/bin/,bzip2 bunzip2 bzcat)
	$(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) \
	$(MAKE) PREFIX=$(TARGET_DIR)/usr -C $(@D) install
	cp $(@D)/libbz2.so.$(BZIP2_SONAME) $(TARGET_DIR)/usr/lib/
	(cd $(TARGET_DIR)/usr/lib; \
		ln -snf libbz2.so.$(BZIP2_SONAME) libbz2.so.1.0; \
		ln -snf libbz2.so.$(BZIP2_SONAME) libbz2.so.1; \
		ln -snf libbz2.so.$(BZIP2_SONAME) libbz2.so; \
	)
	(cd $(TARGET_DIR)/usr/bin; \
		ln -snf bzip2 bunzip2; \
		ln -snf bzip2 bzcat; \
		ln -snf bzdiff bzcmp; \
		ln -snf bzmore bzless; \
		ln -snf bzgrep bzegrep; \
		ln -snf bzgrep bzfgrep; \
	)
endef

define BZIP2_CLEAN_CMDS
	rm -f $(addprefix $(TARGET_DIR),/lib/libbz2.* \
					/usr/lib/libbz2.* \
					/usr/include/bzlib.h)
	rm -f $(addprefix $(STAGING_DIR),/lib/libbz2.* \
					/usr/lib/libbz2.* \
					/usr/include/bzlib.h)
	-$(MAKE) -C $(@D) clean
endef

define HOST_BZIP2_FIX_MAKEFILE
	$(SED) "s,ln \$$(,ln -snf \$$(,g" $(@D)/Makefile
	$(SED) "s,ln -s (lib.*),ln -snf \$$1; ln -snf libbz2.so.$(BZIP2_SONAME) \
	    libbz2.so,g" $(@D)/Makefile-libbz2_so
	$(SED) "s:-O2:$(HOST_CFLAGS):" $(@D)/Makefile
	$(SED) "s:-O2:$(HOST_CFLAGS):" $(@D)/Makefile-libbz2_so
endef

HOST_BZIP2_POST_PATCH_HOOKS += HOST_BZIP2_FIX_MAKEFILE

define HOST_BZIP2_BUILD_CMDS
	$(HOST_MAKE_ENV) $(MAKE) -C $(@D) -f Makefile-libbz2_so
	$(HOST_MAKE_ENV) $(MAKE) -C $(@D) libbz2.a bzip2 bzip2recover
endef

define HOST_BZIP2_INSTALL_CMDS
	$(HOST_MAKE_ENV) \
	$(MAKE) PREFIX=$(HOST_DIR)/usr -C $(@D) install
endef

$(eval $(call GENTARGETS))
$(eval $(call GENTARGETS,host))