mirror of
				https://github.com/facebook/zstd.git
				synced 2025-11-03 20:33:11 +03:00 
			
		
		
		
	Merge pull request #4489 from facebook/doc_install
Added documentation details for Makefile installation and pkg-config.
This commit is contained in:
		
							
								
								
									
										10
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								README.md
									
									
									
									
									
								
							@@ -127,19 +127,19 @@ When your system allows it, prefer using `make` to build `zstd` and `libzstd`.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
### Makefile
 | 
					### Makefile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
If your system is compatible with standard `make` (or `gmake`),
 | 
					Assuming your system supports standard `make` (or `gmake`),
 | 
				
			||||||
invoking `make` in root directory will generate `zstd` cli in root directory.
 | 
					invoking `make` in root directory will generate `zstd` cli in root directory.
 | 
				
			||||||
It will also create `libzstd` into `lib/`.
 | 
					It will also create `libzstd` into `lib/`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Other available options include:
 | 
					Other standard targets include:
 | 
				
			||||||
- `make install` : create and install zstd cli, library and man pages
 | 
					- `make install` : create and install zstd cli, library and man pages
 | 
				
			||||||
- `make check` : create and run `zstd`, test its behavior on local platform
 | 
					- `make check` : create and run `zstd`, test its behavior on local platform
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The `Makefile` follows the [GNU Standard Makefile conventions](https://www.gnu.org/prep/standards/html_node/Makefile-Conventions.html),
 | 
					The `Makefile` follows the [GNU Standard Makefile conventions](https://www.gnu.org/prep/standards/html_node/Makefile-Conventions.html),
 | 
				
			||||||
allowing staged install, standard flags, directory variables and command variables.
 | 
					allowing staged install, standard compilation flags, directory variables and command variables.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
For advanced use cases, specialized compilation flags which control binary generation
 | 
					For advanced use cases, specialized flags which control binary generation and installation paths are documented
 | 
				
			||||||
are documented in [`lib/README.md`](lib/README.md#modular-build) for the `libzstd` library
 | 
					in [`lib/README.md`](lib/README.md#modular-build) for the `libzstd` library
 | 
				
			||||||
and in [`programs/README.md`](programs/README.md#compilation-variables) for the `zstd` CLI.
 | 
					and in [`programs/README.md`](programs/README.md#compilation-variables) for the `zstd` CLI.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### cmake
 | 
					### cmake
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,15 +7,29 @@ in order to make it easier to select or exclude features.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#### Building
 | 
					#### Building
 | 
				
			||||||
 | 
					
 | 
				
			||||||
`Makefile` script is provided, supporting [Makefile conventions](https://www.gnu.org/prep/standards/html_node/Makefile-Conventions.html#Makefile-Conventions),
 | 
					A `Makefile` script is provided, supporting [Makefile conventions](https://www.gnu.org/prep/standards/html_node/Makefile-Conventions.html#Makefile-Conventions),
 | 
				
			||||||
including commands variables, staged install, directory variables and standard targets.
 | 
					including commands variables, staged install, directory variables and standard targets.
 | 
				
			||||||
- `make` : generates both static and dynamic libraries
 | 
					- `make` : generates both static and dynamic libraries
 | 
				
			||||||
- `make install` : install libraries and headers in target system directories
 | 
					- `make install` : install libraries, headers and pkg-config in local system directories
 | 
				
			||||||
 | 
					
 | 
				
			||||||
`libzstd` default scope is pretty large, including compression, decompression, dictionary builder,
 | 
					`libzstd` default scope is extensive, including compression, decompression, dictionary builder,
 | 
				
			||||||
and support for decoding legacy formats >= v0.5.0.
 | 
					and support for decoding legacy formats >= v0.5.0 by default.
 | 
				
			||||||
The scope can be reduced on demand (see paragraph _modular build_).
 | 
					The scope can be reduced on demand (see paragraph _modular build_).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Multiarch Support
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					For multiarch systems (like Debian/Ubuntu), libraries should be installed to architecture-specific directories.
 | 
				
			||||||
 | 
					When creating packages for such systems, use the `LIBDIR` variable to specify the correct multiarch path:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					# For x86_64 systems on Ubuntu/Debian:
 | 
				
			||||||
 | 
					make install PREFIX=/usr LIBDIR=/usr/lib/x86_64-linux-gnu
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# For ARM64 systems on Ubuntu/Debian:
 | 
				
			||||||
 | 
					make install PREFIX=/usr LIBDIR=/usr/lib/aarch64-linux-gnu
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This will not only install the files in the correct directories, but also generate the correct paths for `pkg-config`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#### Multithreading support
 | 
					#### Multithreading support
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user