mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 21:28:11 +09:00 
			
		
		
		
	Add BSDmakefile to prevent errors when make is called under FreeBSD (#4446)
				
					
				
			The syntax of the gitea Makefile is not platform-agnostic and is specific to the GNU version of `make`. BSD platforms such as FreeBSD ship with bmake (BSD make) as their default `make` program; attempting to compile gitea by simply executing `make` causes a wall of errors to show as a result of syntax incompatible with BSD make. If a file named `BSDmakefile` is present, `bmake` will give it preference over a generic `Makefile`. This `BSDmakefile` is taken from the BSD-licensed `gmake-proxy` project [0], which transparently proxies all `make` commands to `gmake` (GNU make) on systems where `bmake` is the default, and if `gmake` is not installed an error message is displayed. [0]: https://github.com/neosmart/gmake-proxy
This commit is contained in:
		
				
					committed by
					
						 Jonas Franz
						Jonas Franz
					
				
			
			
				
	
			
			
			
						parent
						
							ef6813abc9
						
					
				
				
					commit
					7be5935c55
				
			
							
								
								
									
										51
									
								
								BSDmakefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								BSDmakefile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,51 @@ | ||||
| # GNU makefile proxy script for BSD make | ||||
| # Written and maintained by Mahmoud Al-Qudsi <mqudsi@neosmart.net> | ||||
| # Copyright NeoSmart Technologies <https://neosmart.net/> 2014-2018 | ||||
| # Obtain updates from <https://github.com/neosmart/gmake-proxy> | ||||
| # | ||||
| # Redistribution and use in source and binary forms, with or without | ||||
| # modification, are permitted provided that the following conditions are met: | ||||
| # | ||||
| # 1. Redistributions of source code must retain the above copyright notice, this | ||||
| # list of conditions and the following disclaimer. | ||||
| # | ||||
| # 2. Redistributions in binary form must reproduce the above copyright notice, | ||||
| # this list of conditions and the following disclaimer in the documentation | ||||
| # and/or other materials provided with the distribution. | ||||
| # | ||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | ||||
| # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||||
| # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||
| # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE | ||||
| # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||||
| # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | ||||
| # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | ||||
| # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | ||||
| # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
|  | ||||
| JARG = | ||||
| GMAKE = "gmake" | ||||
| #When gmake is called from another make instance, -w is automatically added | ||||
| #which causes extraneous messages about directory changes to be emitted. | ||||
| #--no-print-directory silences these messages. | ||||
| GARGS = "--no-print-directory" | ||||
|  | ||||
| .if "$(.MAKE.JOBS)" != "" | ||||
| JARG = -j$(.MAKE.JOBS) | ||||
| .endif | ||||
|  | ||||
| #by default bmake will cd into ./obj first | ||||
| .OBJDIR: ./ | ||||
|  | ||||
| .PHONY: FRC | ||||
| $(.TARGETS): FRC | ||||
| 	$(GMAKE) $(GARGS) $(.TARGETS:S,.DONE,,) $(JARG) | ||||
|  | ||||
| .DONE .DEFAULT: .SILENT | ||||
| 	$(GMAKE) $(GARGS) $(.TARGETS:S,.DONE,,) $(JARG) | ||||
|  | ||||
| .ERROR: .SILENT | ||||
| 	if ! which $(GMAKE) > /dev/null; then \ | ||||
| 		echo "GNU Make is required!"; \ | ||||
| 	fi | ||||
		Reference in New Issue
	
	Block a user