Python
2014.05.29 14:00

[Sconscript] Install method

조회 수 8866 댓글 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
번호 분류 제목 날짜 조회 수 추천 수
506 LINUX epoch time을 실제 시간으로 변환해주는 excel 함수 2015.03.18 9352 0
505 일반 사용하지 않는 COM Port 삭제하기 2015.03.18 9708 0
504 Pi ftp 설정하기 2015.10.01 7617 0
503 LINUX Ubuntu php5.6 , php7.1 설치 및 셋팅하기 2020.02.11 5788 0
502 PHP [PHP] .php 확장자 없이 URL 접속하기 2020.10.26 5174 0
501 업무 Back-End 관련 정보 2022.05.17 2122 0
500 PHP SQL :: EXIST , NOT EXIST 2022.09.05 1938 0
499 Pi 라즈베리파이 웹페이지 자동 실행 설정 방법 secret 2020.11.03 0 0
498 일반 프리미어 프로 Premier Pro secret 2022.02.04 0 0
497 일반 나사 규격 2016.10.19 21054 0
496 일반 소스코드 게시판입니다. 2005.07.29 46421 0
495 C 콘솔 창에서 글자 색깔 바꾸기 2005.08.05 27791 0
494 C 입출력 파일을 표준입력으로 받아 열기 2005.08.05 29860 0
493 개념 CFM(Content Forward Management) 2012.01.27 18351 0
492 C Trim() - 줄 앞뒤의 공백, 탭을 없애주는 함수 2005.08.05 41251 0
목록
Board Pagination ‹ Prev 1 2 3 4 5 6 7 8 9 10 ... 34 Next ›
/ 34

나눔글꼴 설치 안내


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

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

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5