mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-23 06:53:34 +08:00
Add tools/link.bat, unlink.bat, and copydir.bat
git-svn-id: http://svn.code.sf.net/p/nuttx/code/trunk@5419 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
+19
-9
@@ -369,8 +369,11 @@ incdir.bat
|
||||
that context: MinGW-GCC.
|
||||
|
||||
link.sh
|
||||
winlink.sh
|
||||
link.bat
|
||||
copydir.sh
|
||||
copydir.bat
|
||||
unlink.sh
|
||||
unlink.bat
|
||||
----------
|
||||
|
||||
Different file system have different capabilities for symbolic links.
|
||||
@@ -390,18 +393,25 @@ unlink.sh
|
||||
default. link.sh is a bash script that performs a normal, Linux-style
|
||||
symbolic link; unlink.sh is a do-it-all unlinking script.
|
||||
|
||||
But if you are building under cygwin using a Windows native toolchain,
|
||||
then you will need something like the following in you Make.defs file:
|
||||
But if you are building under cygwin using a Windows native toolchain
|
||||
within a POSIX framework (such as Cygwin), then you will need something
|
||||
like the following in you Make.defs file:
|
||||
|
||||
DIRLINK = $(TOPDIR)/tools/winlink.sh
|
||||
DIRLINK = $(TOPDIR)/tools/copydir.sh
|
||||
DIRUNLINK = (TOPDIR)/tools/unlink.sh
|
||||
|
||||
winlink.sh will copy the whole directory instead of linking it.
|
||||
copydir.sh will copy the whole directory instead of linking it.
|
||||
|
||||
NOTE: I have been told that some NuttX users have been able to build
|
||||
successfully using the GnuWin32 tools and modifying the link.sh
|
||||
script so that it uses the NTFS mklink command. But I have never
|
||||
tried that
|
||||
Finally, if you are running in a pure native Windows environment with
|
||||
a CMD.exe shell, then you will need something like this:
|
||||
|
||||
DIRLINK = $(TOPDIR)/tools/copydir.bat
|
||||
DIRUNLINK = (TOPDIR)/tools/unlink.bat
|
||||
|
||||
Note that this will copy directories. ;ink.bat might also be used in
|
||||
this case. link.bat will attempt to create a symbolic link using the
|
||||
NTFS mklink.exe command instead of copying files. That logic, however,
|
||||
has not been verified as of this writing.
|
||||
|
||||
mkimage.sh
|
||||
----------
|
||||
|
||||
Executable
+102
@@ -0,0 +1,102 @@
|
||||
@echo off
|
||||
|
||||
rem tools/copydir.bat
|
||||
rem
|
||||
rem Copyright (C) 2012 Gregory Nutt. All rights reserved.
|
||||
rem Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
rem
|
||||
rem Redistribution and use in source and binary forms, with or without
|
||||
rem modification, are permitted provided that the following conditions
|
||||
rem are met:
|
||||
rem
|
||||
rem 1. Redistributions of source code must retain the above copyright
|
||||
rem notice, this list of conditions and the following disclaimer.
|
||||
rem 2. Redistributions in binary form must reproduce the above copyright
|
||||
rem notice, this list of conditions and the following disclaimer in
|
||||
rem the documentation and/or other materials provided with the
|
||||
rem distribution.
|
||||
rem 3. Neither the name NuttX nor the names of its contributors may be
|
||||
rem used to endorse or promote products derived from this software
|
||||
rem without specific prior written permission.
|
||||
rem
|
||||
rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
rem FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
rem COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
rem INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
rem BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
rem OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
rem AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
rem LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
rem ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
rem POSSIBILITY OF SUCH DAMAGE.
|
||||
rem
|
||||
|
||||
rem
|
||||
rem NuttX uses symbolic links to configure platform-specific directories into
|
||||
rem the build system. This works great except for when a Windows native
|
||||
rem toolchain is used in a Cygwin environment. In that case, symbolic
|
||||
rem links do not work correctly when accessed from the Windows native toolchain;
|
||||
rem rather, just look link files with the extension .lnk
|
||||
rem
|
||||
rem In this environment, the build system will work around this using this script
|
||||
rem as a replacement for the 'ln' command. This scrpt will simply copy the
|
||||
rem directory into the expected positiion.
|
||||
rem
|
||||
|
||||
set src=%1
|
||||
set dest=%2
|
||||
|
||||
rem Verify that arguments were provided
|
||||
|
||||
if "%src%"=="" goto :MissingSrc
|
||||
if "%dest%"=="" goto :MissingDest
|
||||
goto CheckSrc
|
||||
|
||||
:MissingSrc
|
||||
|
||||
echo Missing ^<src^> and ^<dest^> arguments
|
||||
goto :ShowUsage
|
||||
|
||||
:MissingDest
|
||||
|
||||
echo Missing ^<dest^> arguments
|
||||
goto :ShowUsage
|
||||
|
||||
rem Verify that a directory exists at the source path
|
||||
|
||||
:CheckSrc
|
||||
|
||||
if exist %src% goto :CheckDest
|
||||
|
||||
echo No directory at %src%
|
||||
goto :ShowUsage
|
||||
|
||||
:CheckDest
|
||||
|
||||
rem If something already exists at the destination path, remove it
|
||||
|
||||
if not exist %dest% goto :CopyDir
|
||||
|
||||
rmdir /q /s %dest%
|
||||
if errorlevel 1 (
|
||||
echo Failed to remove existing object at %dest%
|
||||
goto :ShowUsage
|
||||
)
|
||||
|
||||
rem Copy the directory
|
||||
|
||||
:CopyDir
|
||||
|
||||
xcopy %src% %dest% /c /q /s /e /y /i
|
||||
echo FAKELNK > %dest%\.fakelnk
|
||||
goto :End
|
||||
|
||||
:ShowUsage
|
||||
echo USAGE: %0 ^<src^> ^<dest^>
|
||||
echo Where:
|
||||
echo ^<src^> is the source directory to be copied
|
||||
echo ^<dest^> is the destination directory to be created
|
||||
|
||||
:End
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
############################################################################
|
||||
# tools/winlink.sh
|
||||
# tools/copydir.sh
|
||||
#
|
||||
# Copyright (C) 2008 Gregory Nutt. All rights reserved.
|
||||
# Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
Executable
+89
@@ -0,0 +1,89 @@
|
||||
@echo off
|
||||
|
||||
rem tools/link.bat
|
||||
rem
|
||||
rem Copyright (C) 2012 Gregory Nutt. All rights reserved.
|
||||
rem Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
rem
|
||||
rem Redistribution and use in source and binary forms, with or without
|
||||
rem modification, are permitted provided that the following conditions
|
||||
rem are met:
|
||||
rem
|
||||
rem 1. Redistributions of source code must retain the above copyright
|
||||
rem notice, this list of conditions and the following disclaimer.
|
||||
rem 2. Redistributions in binary form must reproduce the above copyright
|
||||
rem notice, this list of conditions and the following disclaimer in
|
||||
rem the documentation and/or other materials provided with the
|
||||
rem distribution.
|
||||
rem 3. Neither the name NuttX nor the names of its contributors may be
|
||||
rem used to endorse or promote products derived from this software
|
||||
rem without specific prior written permission.
|
||||
rem
|
||||
rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
rem FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
rem COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
rem INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
rem BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
rem OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
rem AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
rem LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
rem ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
rem POSSIBILITY OF SUCH DAMAGE.
|
||||
rem
|
||||
|
||||
set src=%1
|
||||
set link=%2
|
||||
|
||||
rem Verify that arguments were provided
|
||||
|
||||
if "%src%"=="" goto :MissingSrc
|
||||
if "%link%"=="" goto :MissingLink
|
||||
goto CheckSrc
|
||||
|
||||
:MissingSrc
|
||||
|
||||
echo Missing ^<src^> and ^<link^> arguments
|
||||
goto :ShowUsage
|
||||
|
||||
:MissingLink
|
||||
|
||||
echo Missing ^<link^> arguments
|
||||
goto :ShowUsage
|
||||
|
||||
rem Verify that a directory exists at the source path
|
||||
|
||||
:CheckSrc
|
||||
|
||||
if exist %src% goto :CheckLink
|
||||
|
||||
echo No directory at %src%
|
||||
goto :ShowUsage
|
||||
|
||||
:CheckLink
|
||||
|
||||
rem If something already exists at the destination path, remove it
|
||||
|
||||
if not exist %link% goto :MkLink
|
||||
|
||||
rmdir /q /s %link%
|
||||
if errorlevel 1 (
|
||||
echo Failed to remove existing object at %link%
|
||||
goto :ShowUsage
|
||||
)
|
||||
|
||||
rem Copy the directory
|
||||
|
||||
:MkLink
|
||||
|
||||
/user:administrator mklink /d %src% %link%
|
||||
goto :End
|
||||
|
||||
:ShowUsage
|
||||
echo USAGE: %0 ^<src^> ^<link^>
|
||||
echo Where:
|
||||
echo ^<src^> is the source directory to be linked
|
||||
echo ^<link^> is the link to be created
|
||||
|
||||
:End
|
||||
Executable
+71
@@ -0,0 +1,71 @@
|
||||
@echo off
|
||||
|
||||
rem tools/unlink.bat
|
||||
rem
|
||||
rem Copyright (C) 2012 Gregory Nutt. All rights reserved.
|
||||
rem Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
rem
|
||||
rem Redistribution and use in source and binary forms, with or without
|
||||
rem modification, are permitted provided that the following conditions
|
||||
rem are met:
|
||||
rem
|
||||
rem 1. Redistributions of source code must retain the above copyright
|
||||
rem notice, this list of conditions and the following disclaimer.
|
||||
rem 2. Redistributions in binary form must reproduce the above copyright
|
||||
rem notice, this list of conditions and the following disclaimer in
|
||||
rem the documentation and/or other materials provided with the
|
||||
rem distribution.
|
||||
rem 3. Neither the name NuttX nor the names of its contributors may be
|
||||
rem used to endorse or promote products derived from this software
|
||||
rem without specific prior written permission.
|
||||
rem
|
||||
rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
rem FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
rem COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
rem INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
rem BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
rem OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
rem AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
rem LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
rem ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
rem POSSIBILITY OF SUCH DAMAGE.
|
||||
rem
|
||||
|
||||
rem Verify that arguments were provided
|
||||
|
||||
set link=%1
|
||||
if "%link%"=="" goto :MissingArgument
|
||||
|
||||
rem Check if something already exists at the link path
|
||||
|
||||
if exist "%link%" goto :LinkExists
|
||||
|
||||
echo %link% does not exist
|
||||
goto :ShowUsage
|
||||
|
||||
rem %link% make be a symbolic link or it may be a copied director (with
|
||||
rem a .fakelnk file in it). It really does not matter which: We do the
|
||||
rem same thing in either case
|
||||
|
||||
:LinkExists
|
||||
|
||||
rmdir /q /s %link%
|
||||
if errorlevel 1 (
|
||||
echo Failed to remove existing object at %link%
|
||||
goto :ShowUsage
|
||||
)
|
||||
|
||||
goto :End
|
||||
|
||||
:MissingArgument
|
||||
|
||||
echo Missing Argument
|
||||
|
||||
:ShowUsage
|
||||
echo USAGE: %0 ^<link^>
|
||||
echo Where:
|
||||
echo ^<link^> is the linked (or copied) directory to be removed
|
||||
|
||||
:End
|
||||
Reference in New Issue
Block a user