mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-10-29 05:40:27 -04:00 
			
		
		
		
	Rewrite "Building" section in INSTALL.md
Rephrase steps in "Building" section of INSTALL.md accurately together with examples. Bunch of steps and concepts were not clearly specified, e.g. how and when the build options ought to be used. Finally, explain the role of autogen.sh correctly. It's just for jhbuild. A more precise build instructions, on the other hand, help a developer unfamiliar with the build system. Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@iki.fi>
This commit is contained in:
		
							parent
							
								
									8406d36e85
								
							
						
					
					
						commit
						738d9b7767
					
				
					 1 changed files with 27 additions and 14 deletions
				
			
		
							
								
								
									
										41
									
								
								INSTALL.md
									
										
									
									
									
								
							
							
						
						
									
										41
									
								
								INSTALL.md
									
										
									
									
									
								
							|  | @ -1,27 +1,40 @@ | ||||||
| ## Building | ## Building | ||||||
| 
 | 
 | ||||||
| Pipewire uses the Meson and Ninja build system to compile. You can run it | Pipewire uses a build tool called *Meson* as a basis for its build | ||||||
| with: | process.  It's a tool with some resemblance to Autotools and CMake. Meson | ||||||
|  | again generates build files for a lower level build tool called *Ninja*, | ||||||
|  | working in about the same level of abstraction as more familiar GNU Make | ||||||
|  | does. | ||||||
|  | 
 | ||||||
|  | Generate the build files for Ninja: | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| $ meson build | $ meson setup build | ||||||
| $ cd build |  | ||||||
| $ ninja |  | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| You can see the available meson options in `meson_options.txt` file. | Once this is done, the next step is to review the build options: | ||||||
| 
 |  | ||||||
| If you're not familiar with these tools, the included `autogen.sh` script will |  | ||||||
| automatically run the correct `meson`/`ninja` commands, and output a Makefile. |  | ||||||
| It follows that there are two methods to build Pipewire, however both rely |  | ||||||
| on Meson and Ninja to actually perform the compilation: |  | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| $ ./autogen.sh | $ meson configure build | ||||||
| $ make |  | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| Provide the installation directory with the --prefix option. | Define the installation prefix: | ||||||
|  | 
 | ||||||
|  | ``` | ||||||
|  | $ meson configure -Dprefix=/usr # Default: /usr/local | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | Pipewire specific build options are listed in the "Project options" | ||||||
|  | section. They are defined in `meson_options.txt`. | ||||||
|  | 
 | ||||||
|  | Finally, invoke the build: | ||||||
|  | 
 | ||||||
|  | ``` | ||||||
|  | $ ninja -C build | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | Just to avoid any confusion: `autogen.sh` is a script invoked by *Jhbuild*, | ||||||
|  | which orchestrates multi-component builds. | ||||||
| 
 | 
 | ||||||
| ## Running | ## Running | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Jarkko Sakkinen
						Jarkko Sakkinen