Python
2014.05.29 14:00

[Sconscript] Install method

조회 수 10527 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print

Once a program is built, it is often appropriate to install it in another directory for public use. 

우선 프로그램이 빌드된 후 , 많은 경우 공용의 목적을 위하여 다른 디렉토리에 프로그램을 설치하는 것이 적절하다.


You use the Install method to arrange for a program, or any other file, to be copied into a destination directory:

이럴때, install method를 통하여 프로그램이나 파일을 목적 디렉토리에 복사할 수 있다.


env = Environment()

hello = env.Program(’hello.c’)

env.Install(’/usr/bin’, hello)


Note, however, that installing a file is still considered a type of file "build." 

This is important when you remember that the default behavior of SCons is to build files in or below the current directory. 


If, as in the example above, you are installing files in a directory outside of the top-level SConstruct file’s directory tree, 

you must specify that directory (or a higher directory, such as /) for it to install anything there:

위와 같은 스크립트의 내용으로 빌드를 한다면 아래와 같이 특정 저장위치에 파일을 설치하기 위하여 디렉토리를 지정해줘야 한다.


% scons -Q

cc -o hello.o -c hello.c

cc -o hello hello.o


% scons -Q /usr/bin

Install file: "hello" as "/usr/bin/hello"


 It can, however, be cumbersome to remember (and type) the specific destination directory in which the program (or any other file) should be installed. This is an area where the Alias function comes in handy, allowing you, for example, to create a pseudo-target named install that can expand to the specified destination directory:


하지만, 위와 같이 목적지 디렉토리이름을 기억하는 것은 부담스럽기 때문에 "alias"을 통하여 사용하는 것이 또 하나의 방법이다.


env = Environment()

hello = env.Program(’hello.c’)

env.Install(’/usr/bin’, hello)

env.Alias(’install’, ’/usr/bin’)


This then yields the more natural ability to install the program in its destination as follows:


% scons -Q

cc -o hello.o -c hello.c

cc -o hello hello.o


% scons -Q install

Install file: "hello" as "/usr/bin/hello"



13.1. Installing Multiple Files in a Directory

You can install multiple files into a directory simply by calling the Install function multiple times:


env = Environment()

hello = env.Program(’hello.c’)

goodbye = env.Program(’goodbye.c’)

env.Install(’/usr/bin’, hello)

env.Install(’/usr/bin’, goodbye)

env.Alias(’install’, ’/usr/bin’)


Or, more succinctly, listing the multiple input files in a list (just like you can do with any other builder):

좀 더 간결하게 두 개 이상의 입력 파일에 대하여 list로 표현이 가능하다.


env = Environment()

hello = env.Program(’hello.c’)

goodbye = env.Program(’goodbye.c’)

env.Install(’/usr/bin’, [hello, goodbye])

env.Alias(’install’, ’/usr/bin’)


Either of these two examples yields:


% scons -Q install

cc -o goodbye.o -c goodbye.c

cc -o goodbye goodbye.o

Install file: "goodbye" as "/usr/bin/goodbye"

cc -o hello.o -c hello.c

cc -o hello hello.o

Install file: "hello" as "/usr/bin/hello"



13.2. Installing a File Under a Different Name


The Install method preserves the name of the file when it is copied into the destination directory. 

"install" 함수는 목적지 디렉토리로 복사되었을 때, 파일의 이름을 지정하는 것도 가능하다.


If you need to change the name of the file when you copy it, use the InstallAs function:



env = Environment()

hello = env.Program(’hello.c’)

env.InstallAs(’/usr/bin/hello-new’, hello)

env.Alias(’install’, ’/usr/bin’)


This installs the hello program with the name hello-new as follows:


% scons -Q install

cc -o hello.o -c hello.c



13.3. Installing Multiple Files Under Different Names


Lastly, if you have multiple files that all need to be installed with different file names, you can either call

the InstallAs function multiple times, or as a shorthand, you can supply same-length lists for both the target and source arguments:

마지막으로, 2개 파일을 빌드 후, 이름을 변경하여 install 하려고 할 경우, list를 사용하여 아래와 같이 구현이 가능하다.


env = Environment()

hello = env.Program(’hello.c’)

goodbye = env.Program(’goodbye.c’)

env.InstallAs([’/usr/bin/hello-new’,’/usr/bin/goodbye-new’],[hello, goodbye])

env.Alias(’install’, ’/usr/bin’)


In this case, the InstallAs function loops through both lists simultaneously, and copies each source file

into its corresponding target file name:


% scons -Q install

cc -o goodbye.o -c goodbye.c

cc -o goodbye goodbye.o

Install file: "goodbye" as "/usr/bin/goodbye-new"

cc -o hello.o -c hello.c

cc -o hello hello.o

Install file: "hello" as "/usr/bin/hello-new"


[출처] [Sconscript] Install method|작성자 hyunsung1026



Dreamy의 코드 스크랩

내가 모으고 내가 보는

List of Articles
번호 분류 제목 날짜 조회 수 추천 수
255 PHP GD 라이브러리 간단 2014.07.09 11664 0
254 일반 DivX 기술 간단 개요 2014.07.08 8696 0
253 Python 커맨드 라인에서 컬러로 출력하기 termcolor 2014.06.27 12459 0
252 LINUX 우분투 root 계정 사용하기 2014.06.18 10422 0
251 PHP Header for XML content in PHP file 2014.06.02 13315 0
» Python [Sconscript] Install method 2014.05.29 10527 0
249 Python C, Python and swig on Windows with Visual Studio 2014.05.29 13742 0
248 Python Python 유용한 코드 모음 2014.05.20 16975 0
247 Android 약정 벗은 안드로이드, 서버가 되다 2014.05.09 11730 0
246 Android 안드로이드에 우분투 설치하기 3 2014.05.09 14706 0
245 Android [apk분석] 개발자가 아니더라도 쉽게 apk를 분석해보자 2014.05.08 21207 0
244 Python filter()와 reduce() 함수 2014.04.30 12901 0
243 Python collections.counter() 함수 2014.04.30 16145 0
242 Python 유용한 Python 함수 및 기능들 2014.04.30 13587 0
241 Python zip() 함수 2014.04.30 24175 0
목록
Board Pagination ‹ Prev 1 ... 13 14 15 16 17 18 19 20 21 22 ... 34 Next ›
/ 34

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5