Create a recursive make target that is modeled after the existing multilib makefile config-ml.in which can be used to build the same files within a target multiple ways.
e.g. from the same source file produce multiple libs by varying the options passed to the compiler. Signed-off-by: Tamar Christina <tamar.christina@arm.com>
This commit is contained in:
		
				
					committed by
					
						 Corinna Vinschen
						Corinna Vinschen
					
				
			
			
				
	
			
			
			
						parent
						
							be3ca39474
						
					
				
				
					commit
					ebd97f4c00
				
			
							
								
								
									
										61
									
								
								libgloss/multi-build.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								libgloss/multi-build.in
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,61 @@ | |||||||
|  | PWD_COMMAND=$${PWDCMD-pwd} | ||||||
|  |  | ||||||
|  | # FIXME: There should be an @-sign in front of the `if'. | ||||||
|  | # Leave out until this is tested a bit more. | ||||||
|  | multi-do: | ||||||
|  | 	if [ -z "$(MULTIDIRS)" ]; then \ | ||||||
|  | 	  true; \ | ||||||
|  | 	else \ | ||||||
|  | 	  rootpre=`${PWD_COMMAND}`/; export rootpre; \ | ||||||
|  | 	  srcrootpre=`cd $(srcdir); ${PWD_COMMAND}`/; export srcrootpre; \ | ||||||
|  | 	  lib=`echo "$${rootpre}" | sed -e 's,^.*/\([^/][^/]*\)/$$,\1,'`; export lib; \ | ||||||
|  | 	  compiler="$(CC)"; \ | ||||||
|  | 	  for dir in $(MULTIDIRS); do \ | ||||||
|  | 	    if [ "$${dir}" = "." ]; then \ | ||||||
|  | 	      true; \ | ||||||
|  | 	    else \ | ||||||
|  | 	      destpre=`echo $${rootpre}/$${dir}`/; export destpre; \ | ||||||
|  | 	      if ! test -d $${destpre} ; then \ | ||||||
|  | 		mkdir -p $${destpre}; \ | ||||||
|  | 		cp config.status $${destpre}; \ | ||||||
|  | 		cd $${destpre}; \ | ||||||
|  | 		$(SHELL) config.status; \ | ||||||
|  | 		sed -e "s:^MULTIDIRS\s*+=.*$$:MULTIDIRS = :" \ | ||||||
|  | 		    -e "s:^MULTILIBNAME\s*=.*$$:MULTILIBNAME = MULTIDIR_$${dir}_NAME:" \ | ||||||
|  | 		    -e "s:^MULTI_FLAGS_FOR_TARGET\s*=.*$$:MULTI_FLAGS_FOR_TARGET = MULTIDIR_$${dir}_FLAGS:" \ | ||||||
|  | 		    -e "s:^objdir\s*=.*$$:objdir = ..:" \ | ||||||
|  | 			Makefile > Makefile.tem; \ | ||||||
|  | 		rm -f Makefile; \ | ||||||
|  | 		mv Makefile.tem Makefile; \ | ||||||
|  | 	      else \ | ||||||
|  | 		cd $${destpre}; \ | ||||||
|  | 	      fi; \ | ||||||
|  | 	      if ($(MAKE) $(FLAGS_TO_PASS) \ | ||||||
|  | 		    CFLAGS="$(CFLAGS)" \ | ||||||
|  | 		    CCASFLAGS="$(CCASFLAGS)" \ | ||||||
|  | 		    FCFLAGS="$(FCFLAGS)" \ | ||||||
|  | 		    FFLAGS="$(FFLAGS)" \ | ||||||
|  | 		    ADAFLAGS="$(ADAFLAGS)" \ | ||||||
|  | 		    prefix="$(prefix)" \ | ||||||
|  | 		    exec_prefix="$(exec_prefix)" \ | ||||||
|  | 		    GCJFLAGS="$(GCJFLAGS)" \ | ||||||
|  | 		    GOCFLAGS="$(GOCFLAGS)" \ | ||||||
|  | 		    CXXFLAGS="$(CXXFLAGS)" \ | ||||||
|  | 		    LIBCFLAGS="$(LIBCFLAGS)" \ | ||||||
|  | 		    LIBCXXFLAGS="$(LIBCXXFLAGS)" \ | ||||||
|  | 		    LDFLAGS="$(LDFLAGS)" \ | ||||||
|  | 		    MULTIFLAGS="" \ | ||||||
|  | 		    DESTDIR="" \ | ||||||
|  | 		    SOURCE="${srcdir}/" \ | ||||||
|  | 		    INSTALL="$(INSTALL)" \ | ||||||
|  | 		    INSTALL_DATA="$(INSTALL_DATA)" \ | ||||||
|  | 		    INSTALL_PROGRAM="$(INSTALL_PROGRAM)" \ | ||||||
|  | 		    INSTALL_SCRIPT="$(INSTALL_SCRIPT)" \ | ||||||
|  | 		    $(DO)); then \ | ||||||
|  | 		cd $${rootpre}; \ | ||||||
|  | 	      else \ | ||||||
|  | 		exit 1; \ | ||||||
|  | 	      fi; \ | ||||||
|  | 	    fi; \ | ||||||
|  | 	  done; \ | ||||||
|  | 	fi | ||||||
		Reference in New Issue
	
	Block a user