mirror of
				https://github.com/Z3Prover/z3
				synced 2025-11-03 21:09:11 +00:00 
			
		
		
		
	Partially fix not being able to do a staged package install of Z3 using the
DESTDIR make file variable (https://www.gnu.org/prep/standards/html_node/DESTDIR.html) for ``install`` and ``uninstall`` targets. Typically packagers build packages like so ``` $ ./configure --prefix=/usr/ $ make $ make DESTDIR=/some/path/ install ``` Doing this installs the files into a directory ``/some/path`` but places files inside that directory using the layout in ``--prefix`` (e.g. ``/some/path/usr/bin/z3``). The ``/some/path`` directory can then be packaged (e.g. tarballed) for later installation. The ``DESTDIR`` is not set in the Makefile and thus is empty by default which maintains the existing ``make install`` behaviour. Unfortunately this situation isn't fixed for the Python bindings (and possibly others) yet as more invasive changes are needed here. I'll fix this in later commits.
This commit is contained in:
		
							parent
							
								
									d175c99542
								
							
						
					
					
						commit
						9489665ddc
					
				
					 1 changed files with 11 additions and 11 deletions
				
			
		| 
						 | 
				
			
			@ -992,11 +992,11 @@ class LibComponent(Component):
 | 
			
		|||
 | 
			
		||||
    def mk_install(self, out):
 | 
			
		||||
        for include in self.includes2install:
 | 
			
		||||
            out.write('\t@cp %s %s\n' % (os.path.join(self.to_src_dir, include), os.path.join('$(PREFIX)', 'include', include)))
 | 
			
		||||
            out.write('\t@cp %s %s\n' % (os.path.join(self.to_src_dir, include), os.path.join('$(DESTDIR)$(PREFIX)', 'include', include)))
 | 
			
		||||
 | 
			
		||||
    def mk_uninstall(self, out):
 | 
			
		||||
        for include in self.includes2install:
 | 
			
		||||
            out.write('\t@rm -f %s\n' % os.path.join('$(PREFIX)', 'include', include))
 | 
			
		||||
            out.write('\t@rm -f %s\n' % os.path.join('$(DESTDIR)$(PREFIX)', 'include', include))
 | 
			
		||||
 | 
			
		||||
    def mk_win_dist(self, build_path, dist_path):
 | 
			
		||||
        mk_dir(os.path.join(dist_path, 'include'))
 | 
			
		||||
| 
						 | 
				
			
			@ -1078,11 +1078,11 @@ class ExeComponent(Component):
 | 
			
		|||
    def mk_install(self, out):
 | 
			
		||||
        if self.install:
 | 
			
		||||
            exefile = '%s$(EXE_EXT)' % self.exe_name
 | 
			
		||||
            out.write('\t@cp %s %s\n' % (exefile, os.path.join('$(PREFIX)', 'bin', exefile)))
 | 
			
		||||
            out.write('\t@cp %s %s\n' % (exefile, os.path.join('$(DESTDIR)$(PREFIX)', 'bin', exefile)))
 | 
			
		||||
 | 
			
		||||
    def mk_uninstall(self, out):
 | 
			
		||||
        exefile = '%s$(EXE_EXT)' % self.exe_name
 | 
			
		||||
        out.write('\t@rm -f %s\n' % os.path.join('$(PREFIX)', 'bin', exefile))
 | 
			
		||||
        out.write('\t@rm -f %s\n' % os.path.join('$(DESTDIR)$(PREFIX)', 'bin', exefile))
 | 
			
		||||
 | 
			
		||||
    def mk_win_dist(self, build_path, dist_path):
 | 
			
		||||
        if self.install:
 | 
			
		||||
| 
						 | 
				
			
			@ -1224,19 +1224,19 @@ class DLLComponent(Component):
 | 
			
		|||
    def mk_install(self, out):
 | 
			
		||||
        if self.install:
 | 
			
		||||
            dllfile = '%s$(SO_EXT)' % self.dll_name
 | 
			
		||||
            out.write('\t@cp %s %s\n' % (dllfile, os.path.join('$(PREFIX)', 'lib', dllfile)))
 | 
			
		||||
            out.write('\t@cp %s %s\n' % (dllfile, os.path.join('$(DESTDIR)$(PREFIX)', 'lib', dllfile)))
 | 
			
		||||
            out.write('\t@cp %s %s\n' % (dllfile, os.path.join(PYTHON_PACKAGE_DIR, dllfile)))
 | 
			
		||||
            if self.static:
 | 
			
		||||
                libfile = '%s$(LIB_EXT)' % self.dll_name
 | 
			
		||||
                out.write('\t@cp %s %s\n' % (libfile, os.path.join('$(PREFIX)', 'lib', libfile)))
 | 
			
		||||
                out.write('\t@cp %s %s\n' % (libfile, os.path.join('$(DESTDIR)$(PREFIX)', 'lib', libfile)))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    def mk_uninstall(self, out):
 | 
			
		||||
        dllfile = '%s$(SO_EXT)' % self.dll_name
 | 
			
		||||
        out.write('\t@rm -f %s\n' % os.path.join('$(PREFIX)', 'lib', dllfile))
 | 
			
		||||
        out.write('\t@rm -f %s\n' % os.path.join('$(DESTDIR)$(PREFIX)', 'lib', dllfile))
 | 
			
		||||
        out.write('\t@rm -f %s\n' % os.path.join(PYTHON_PACKAGE_DIR, dllfile))
 | 
			
		||||
        libfile = '%s$(LIB_EXT)' % self.dll_name
 | 
			
		||||
        out.write('\t@rm -f %s\n' % os.path.join('$(PREFIX)', 'lib', libfile))
 | 
			
		||||
        out.write('\t@rm -f %s\n' % os.path.join('$(DESTDIR)$(PREFIX)', 'lib', libfile))
 | 
			
		||||
 | 
			
		||||
    def mk_win_dist(self, build_path, dist_path):
 | 
			
		||||
        if self.install:
 | 
			
		||||
| 
						 | 
				
			
			@ -2009,9 +2009,9 @@ def mk_install(out):
 | 
			
		|||
    if is_ml_enabled() and OCAMLFIND != '':
 | 
			
		||||
        out.write('ocamlfind_install')
 | 
			
		||||
    out.write('\n')
 | 
			
		||||
    out.write('\t@mkdir -p %s\n' % os.path.join('$(PREFIX)', 'bin'))
 | 
			
		||||
    out.write('\t@mkdir -p %s\n' % os.path.join('$(PREFIX)', 'include'))
 | 
			
		||||
    out.write('\t@mkdir -p %s\n' % os.path.join('$(PREFIX)', 'lib'))
 | 
			
		||||
    out.write('\t@mkdir -p %s\n' % os.path.join('$(DESTDIR)$(PREFIX)', 'bin'))
 | 
			
		||||
    out.write('\t@mkdir -p %s\n' % os.path.join('$(DESTDIR)$(PREFIX)', 'include'))
 | 
			
		||||
    out.write('\t@mkdir -p %s\n' % os.path.join('$(DESTDIR)$(PREFIX)', 'lib'))
 | 
			
		||||
    for c in get_components():
 | 
			
		||||
        c.mk_install(out)
 | 
			
		||||
    out.write('\t@cp z3*.py %s\n' % PYTHON_PACKAGE_DIR)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue