make install (kernel) without /modules dir

Roman Kurakin rik at cronyx.ru
Fri Mar 12 07:11:09 PST 2004


Ruslan Ermilov wrote:

>Roman Kurakin wrote:
>  
>
>>I forget to say that this problem is for 4. branch
>>
>>Roman Kurakin wrote:
>>
>>    
>>
>>>Hi,
>>>
>>>  It seems that I've found another problem. If /modules dir would be 
>>>removed,
>>>make install (of kernel and kernel modules) will not create modules 
>>>dir and you'll
>>>get /modules file with one of the modules inside.
>>>
>>>One of the variants is to add flag -d to install or other to mkdir -p 
>>>explicitly:
>>>      
>>>
misprint: -d flag should be -D flag
I forgot to check that this is only linux's install behavior.

>>>--- Makefile.old        Fri Mar 12 00:13:45 2004
>>>+++ Makefile    Fri Mar 12 00:15:03 2004
>>>@@ -626,6 +626,7 @@
>>>              cp -p ${DESTDIR}/modules/* ${DESTDIR}/modules.old; \
>>>      fi;
>>>.endif
>>>+       mkdir -p ${DESTDIR}/modules
>>>       cd $S/modules ; env ${MKMODULESENV} ${MAKE} install
>>>
>>>modules-reinstall modules-reinstall.debug:
>>>      
>>>
>
>An old problem.  5.x is only partly affected by this, because
>of a side effect of kern.post.mk creating the necessary directory,
>but if you attempt to install from src/sys/modules/ when
>/boot/kernel doesn't exist, it exhibits the same behavior.
>
>In RELENG_4 the situation is worse, as even "make installkernel"
>can exhibit such behavior.  I once had a patch locally that adds
>"make hierarchy" to the installkernel path, similar to how this
>is done for installworld.
>
>The problem is not unique to just kernel modules; if you attempt
>to install "src/bin/" when /bin doesn't exist you'll see the same
>behavior, that's why I think the below change is not quite
>incorrect.
>
>I believe there's a PR open on this (probably even assigned to
>myself), but I just don't have a clever idea of how to fix it
>properly, sorry -- generally, standard directories are created
>with mtree(8), and not with mkdir(1).
>  
>
If our install was like linux one which have -D flag, we could solve our 
problem
by setting it globaly to install in sys.mk:

-INSTALL         ?=      install -D
+INSTALL         ?=      install -D

This flag dictates to create all necessary dirs if needed.
It would be nice to have such option, not -D of course.

My FreeBSD 3.4 machine tolds me that -D is debug flag.

Roman

>
>Cheers,
>  
>





More information about the freebsd-hackers mailing list