ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/JSOC/configsdp.txt
(Generate patch)

Comparing configsdp.txt (file contents):
Revision 1.1 by arta, Thu Jan 27 17:12:14 2011 UTC vs.
Revision 1.60 by arta, Mon Aug 1 15:07:10 2016 UTC

# Line 1 | Line 1
1   # This file contains JSOC_SDP-specific configuration information. It is used only if the '-sdp' flag is used
2 < # as an argument to the check-out script (checkoutDRMS.pl).
2 > # as an argument to the check-out script (checkoutDRMS.pl). To change the configuration at Stanford, edit
3 > # this file directly, and commit those changes to the source-tree repository.
4  
5 < # The lines in the __MAKE__ section define JSOC_SDP-specific make variables, targets, and rules. When
6 < # configproj.pl is run, it will process this section and create JSOC/localization/make_basic.mk. These are
5 > # The lines in the __PROJ_MK_RULES__ section define JSOC_SDP-specific make variables, targets, and rules. When
6 > # localize.py is run, it will process this section and create JSOC/localization/make_basic.mk. These are
7   # available to all JSOC_SDP projects.
8  
9 < # The lines in the __PROJ__ section define JSOC_SDP projects. When configproj.pl runs, file content will be
9 > # The lines in the __PROJ__ section define JSOC_SDP projects. When localize.py runs, file content will be
10   # added to JSOC/localization/Rules.mk and JSOC/localization/target.mk.
11  
12 < # The lines in the __LIBS__ section define default JSOC_SDP-specific third-party library configuration information.
13 < # These values apply to all code in both JSOC/base and JSOC/proj directories. Entries in config.local will override
14 < # these values. This section is read by moreconfigure.pl only - configproj.pl does not look at this section.
12 > # The lines in the __PROJCFG__ section define additional project-specific configuration. The code in this
13 > # section must be in a shell-scripting language, and will be executed as is.
14 >
15 > # The lines in the __MAKE__ section define global make variables to configure the make process. A subset of
16 > # these variables defines the locations of JSOC_SDP-specific third-party libraries. These values apply to all code
17 > # in both JSOC/base and JSOC/proj directories.
18 >
19 > __DEFS__
20 > q:SERVER                        hmidb
21 > q:DRMSPGPORT                    5432
22 > q:SUMS_DB_HOST                  hmidb3
23 > q:SUMPGPORT                     5434
24 > a:SUMSD_MAX_THREADS             32
25 > a:SUMSD_LISTENPORT              6004
26 > a:DRMS_LOCAL_SITE_CODE          0x0000
27 > q:DBNAME                        jsoc
28 > q:WEB_DBUSER                    apache
29 > q:POSTGRES_ADMIN                postgres
30 > q:SUMS_MANAGER                  production
31 > q:SUMS_GROUP                    SOI
32 > q:SUMLOG_BASEDIR                /usr/local/logs/SUM
33 > q:SUMBIN_BASEDIR                /usr/local/bin
34 > q:SUMSERVER                     k1.stanford.edu
35 > # The number of SUMS process SETS to spawn. If this number is not 1, then the number of SUMS processes
36 > # is SUM_NUMSUM * 5 + 2.
37 > a:SUM_NUMSUM                    3
38 > a:SUM_MAXNUMSUM                 8
39 > p:SUMS_TAPE_AVAILABLE           1
40 > p:SUMS_MULTIPLE_PARTNSETS       1
41 > # No idea what this parameter means. It isn't used anywhere in our code, but for some reason
42 > # it is part of the config.local set, so we have to include it here.
43 > a:SUMS_DEBUG                    1
44 > q:PRODUSER_DBHOST               hmidb:5432
45 > q:PRODUSER_DBNAME               jsoc
46 > q:PRODUSER_PRODTAB              su_production.produsers
47 > q:PRODUSER_COLUSER              username
48 > q:SUMRM_PART_PERCENT_FREE       3
49 > q:SUMRM_SLEEP                   300
50 > # This is a file in SUMLOG_BASEDIR.
51 > q:SUMRM_LOG                     sum_rm.cfg
52 > q:SUMRM_MAIL                    sys2@solar2
53 > q:SUMRM_NOOP                        0
54 > q:SUMRM_USER                        production
55 > q:SUMRM_NORUN_START                 0
56 > q:SUMRM_NORUN_STOP              0
57 > # JMD
58 > p:JMD_IS_INSTALLED              0
59 > q:JMD_URL                       http://localhost:8080/JMD/JMD
60 > # Remote SUMS
61 > q:RS_SITE_TABLE                         drms.rs_sites
62 > q:RS_REQUEST_TABLE                      drms.rs_requests
63 > q:RS_SU_TABLE                           drms.rs_sus
64 > q:RS_DBNAME                             jsoc
65 > q:RS_DBHOST                             hmidb
66 > a:RS_DBPORT                             5432
67 > q:RS_DBUSER                             production
68 > q:RS_LOCKFILE                           /home/jsoc/locks/remotesums.lck
69 > q:RS_LOGDIR                             /home/jsoc/jsoclogs/rsums
70 > a:RS_DLTIMEOUT                          30
71 > a:RS_REQTIMEOUT                          5
72 > a:RS_MAXTHREADS                         32
73 > q:RS_BINPATH                            /home/jsoc/cvs/Development/JSOC/bin/linux_x86_64
74 > a:RS_N_WORKERS                          4
75 > q:RS_TMPDIR                             /tmp
76 > # White-list (access to internal stuff)
77 > a:WL_HASWL                              1
78 > q:WL_FILE                               /web/jsoc/htdocs/whitelist.txt
79 > # Bin paths
80 > q:BIN_EXPORT                            /home/jsoc/cvs/Development/JSOC/bin
81 > q:SCRIPTS_EXPORT                        /home/jsoc/cvs/Development/JSOC/scripts
82 > q:BIN_PY                                /home/jsoc/bin/linux_x86_64/activepython27
83 > a:SUMS_USEMTSUMS                        1
84 > # Email registration
85 > a:REGEMAIL_TIMEOUT                      5
86 > # Slony
87 > q:SLONY_CONFIG                          /home/jsoc/cvs/Development/JSOC/proj/replication/etc/repserver.cfg
88 >
89 > # lev1.5_hmi
90 > q:POLCAL_PARAMS                         /home/jsoc/hmi/tables/lev15/polcal-param-fit.bin
91  
92   __MAKE__
93 < $(CEXESUMS):                    $(LIBSUMSAPI) $(LIBSUM) $(LIBDSTRUCT)
94 < $(MODEXESUMS):                  $(LIBSUMSAPI) $(LIBSUM)
93 > # JSOC_SDP third-party libraries used by base
94 > # The parameters in this section are used to create make variables. For example, the line
95 > # 'POSTGRES_LIB = pq' will cause a make variable named POSTGRES_LIB to be created and to
96 > # be assigned the value 'pq'.
97 >
98 > # If the name in the left column contains a colon, then the name on the LHS is the parameter name. The RHS is
99 > # a description of which platforms or specific machines the parameter applies to. For example,
100 > # the name POSTGRES_INCS:X86_64 implies that the value of the parameter named POSTGRES_INCS is /usr/include
101 > # when make is run on a linux_x86_64 machine. The RHS string can contain either a platform identifier
102 > # (X86_64, IA32, AVX, or IA64) or it can be a string that identifies a particular machine, like d02.
103 > # If the string is not one of the defined platform identifiers, then it is considered a machine identifier.
104 > # A machine identifier can specify more than one machine. The name POSTGRES_INCS:hmidb specifies
105 > # all machines whose names contain the string 'hmidb'. So, for machines hmidb, hmidb2, and hmidb3, the
106 > # value of the POSTGRES_INCS parameter is /usr/local/pgsql/include.
107 > #
108 > # If the RHS is a platform identifier, then make compares the value of $JSOC_MACHINE (which is in
109 > # reality a misnomer, since it truly specifies the name of the machine platform, not the name
110 > # of the machine) to the platform name specified by the RHS string. For example,
111 > # if the RHS string is 'avx', then make compares $JSOC_MACHINE to
112 > # 'linux_avx', and if there is a match, then the parameter's value specified in the second column is assigned
113 > # to the make variable. If the RHS is a machine identifier, then make compares the value of $MACHTYPE
114 > # (another misnormer, since it is the name of the machine, not the name of some type of machine ) to
115 > # the machine names specified by the RHS. For example, if the RHS string is 'hmidb' then make
116 > # compares $MACHTYPE to 'hmidb', and if 'hmidb' is a substring of $MACHTYPE, then the parameter's
117 > # value specified in the second column is assigned to the make variable
118 > #
119 > # Blocks defined by the _CUST_/_ENDCUST_ tags are copied ver batim into the output make file.
120 >
121 > POSTGRES_LIB            pq
122 > CFITSIO_LIB             cfitsio
123 >
124 > POSTGRES_INCS:X86_64    /usr/include
125 > POSTGRES_INCS:IA32      /usr/include
126 > POSTGRES_INCS:AVX       /usr/include
127 > POSTGRES_INCS:IA64      /usr/include/pgsql
128 > POSTGRES_INCS:j1       /usr/include/pgsql
129 > POSTGRES_INCS:d02      /usr/include/pgsql
130 > POSTGRES_INCS:hmidb    /usr/local/pgsql/include
131 > POSTGRES_INCS:cl1n0    __POSTGRES_DEVELOP_NOT_INSTALLED__
132 > POSTGRES_INCS:dcs      /usr/include/pgsql
133 >
134 > POSTGRES_LIBS:X86_64    /usr/lib64
135 > POSTGRES_LIBS:IA32      /usr/lib
136 > POSTGRES_LIBS:AVX       /usr/lib64
137 > POSTGRES_LIBS:IA64      /usr/lib
138 > POSTGRES_LIBS:j1       /usr/lib64
139 > POSTGRES_LIBS:d02      /usr/lib
140 > POSTGRES_LIBS:hmidb    /usr/lib64
141 > POSTGRES_LIBS:cl1n0    /usr/lib64
142 > POSTGRES_LIBS:dcs      /usr/lib64
143 >
144 > CFITSIO_INCS:X86_64     /home/jsoc/include
145 > CFITSIO_INCS:IA32       /home/jsoc/include
146 > CFITSIO_INCS:AVX        /home/jsoc/avx/include
147 > CFITSIO_INCS:IA64       /home/jsoc/include
148 > CFITSIO_INCS:j1         /home/jsoc/include
149 > CFITSIO_INCS:d02        __CFITSIO_NOT_INSTALLED__
150 > CFITSIO_INCS:hmidb      /home/jsoc/include
151 > CFITSIO_INCS:cl1n0      /home/jsoc/include
152 > CFITSIO_INCS:dcs        /home/jsoc/include
153 >
154 > CFITSIO_LIBS:X86_64     /home/jsoc/lib/linux-x86_64
155 > CFITSIO_LIBS:IA32       /home/jsoc/lib/linux-ia32
156 > CFITSIO_LIBS:AVX        /home/jsoc/avx/lib
157 > CFITSIO_LIBS:IA64       /home/jsoc/lib/linux-ia64
158 > CFITSIO_LIBS:j1         /home/jsoc/lib/linux-x86_64
159 > CFITSIO_LIBS:d02        __CFITSIO_NOT_INSTALLED__
160 > CFITSIO_LIBS:hmidb      /home/jsoc/lib/linux-x86_64
161 > CFITSIO_LIBS:cl1n0      /home/jsoc/lib/linux-x86_64
162 > CFITSIO_LIBS:dcs        /home/jsoc/lib/linux-x86_64
163 >
164 > FFTW_INCS:X86_64        /home/jsoc/include
165 > FFTW_INCS:IA32          /home/jsoc/include
166 > FFTW_INCS:AVX           /home/jsoc/avx/include
167 > FFTW_INCS:IA64          /home/jsoc/include
168 >
169 > FFTW_LIBS:X86_64        /home/jsoc/lib/linux-x86_64
170 > FFTW_LIBS:IA32          /home/jsoc/lib/linux-ia32
171 > FFTW_LIBS:AVX           /home/jsoc/avx/lib
172 > FFTW_LIBS:IA64          /home/jsoc/lib/linux-x86_64
173 >
174 > GSL_INCS:X86_64         /home/jsoc/include
175 > GSL_INCS:IA32           /home/jsoc/include
176 > GSL_INCS:AVX            /home/jsoc/avx/include
177 > GSL_INCS:IA64           /home/jsoc/include
178 >
179 > GSL_LIBS:X86_64         /home/jsoc/lib/linux-x86_64
180 > GSL_LIBS:IA32           /home/jsoc/lib/linux-ia32
181 > GSL_LIBS:AVX            /home/jsoc/avx/lib
182 > GSL_LIBS:IA64           /home/jsoc/lib/linux-x86_64
183 >
184 > MPI_INCS:X86_64         /home/jsoc/mpich2/include
185 > MPI_INCS:IA32          
186 > MPI_INCS:AVX            /home/jsoc/avx/include
187 > MPI_INCS:IA64          
188 >
189 > MPI_LIBS:X86_64         /home/jsoc/mpich2/lib
190 > MPI_LIBS:AVX            /home/jsoc/avx/lib
191 >
192 > MPI_PATH:X86_64         /home/jsoc/mpich2/bin
193 > MPI_PATH:AVX            /home/jsoc/avx/bin
194 >
195 > TAR_INCS:X86_64         /home/jsoc/include
196 > TAR_INCS:IA32           /home/jsoc/include
197 > TAR_INCS:AVX            /home/jsoc/avx/include
198 > TAR_INCS:IA64           /home/jsoc/include
199 >
200 > TAR_LIBS:X86_64         /home/jsoc/lib/linux-x86_64
201 > TAR_LIBS:IA32           /home/jsoc/lib/linux-ia32
202 > TAR_LIBS:AVX            /home/jsoc/lib/linux_avx
203 > TAR_LIBS:IA64           /home/jsoc/lib/linux-ia64
204 >
205 > # Set custom make file to tell the make system that the gcc cfitsio library is called
206 > # libcfitsio_gcc.a
207 > _CUST_
208 > ifeq ($(COMPILER), gcc)
209 >    ifeq ($(JSOC_MACHINE), linux_x86_64)
210 >    CFITSIO_LIB = cfitsio_gcc
211 >    endif
212 > endif
213 > _ENDCUST_
214 >
215 > __PROJ_MK_RULES__
216 > $(CEXESUMS):                    $(LIBSUMSAPI) $(LIBCJSON) $(LIBSUM) $(LIBDSTRUCT)
217 > $(MODEXESUMS):                  $(LIBSUMSAPI) $(LIBCJSON) $(LIBSUM)
218  
219   $(MODEXEDROBJ):                 CF_TGT := $(CF_TGT) -I$(SRCDIR)/proj/libs/dr
220   $(MODEXEDR) $(MODEXEDR_SOCK):   $(LIBDR)
21 __END__
221   __PROJ__
222   <?xml version='1.0'?>
223   <projects>
# Line 30 | Line 229 | __PROJ__
229               <subdir>dsputil</subdir>
230               <subdir>gapfiller</subdir>
231               <subdir>interpolate</subdir>
33             <subdir>json</subdir>
232               <subdir>stats</subdir>
233 +             <subdir>egsehmicomp</subdir>
234 +             <subdir>imrotate</subdir>
235 +             <subdir>projection</subdir>
236         </subdirs>
237     </proj>
238     <proj>
# Line 60 | Line 261 | __PROJ__
261          </filters>
262     </proj>
263     <proj>
264 +        <name>mhd_32daily</name>
265 +        <subdirs>
266 +                <subdir>apps</subdir>
267 +        </subdirs>
268 +   </proj>
269 +   <proj>
270 +        <name>mhd_64cr</name>
271 +        <subdirs>
272 +                <subdir>apps</subdir>
273 +        </subdirs>
274 +   </proj>
275 +   <proj>
276          <name>util</name>
277          <subdirs>
278               <subdir>apps</subdir>    
# Line 105 | Line 318 | __PROJ__
318     <proj>
319          <name>globalhs</name>
320          <subdirs>
321 <            <subdir>apps/src</subdir>
321 >            <subdir>apps</subdir>
322 >            <subdir>libs/dtgf</subdir>
323 >            <subdir>libs/inv2d</subdir>
324 >            <subdir>libs/pkbgn</subdir>
325 >            <subdir>libs/projection</subdir>
326          </subdirs>
327          <filters>
328               <filter>
# Line 122 | Line 339 | __PROJ__
339          </subdirs>
340     </proj>
341     <proj>
342 +        <name>lev1.5_aia</name>
343 +        <subdirs>
344 +            <subdir>apps</subdir>
345 +        </subdirs>
346 +   </proj>
347 +   <proj>
348          <name>flatfield</name>
349          <subdirs>
350              <subdir>libs/flatfieldlib</subdir>
351              <subdir>apps</subdir>
352 +            <subdir>off_flat_IDL</subdir>
353 +        </subdirs>
354 +   </proj>
355 +  <proj>
356 +        <name>rings</name>
357 +        <subdirs>
358 +             <subdir>apps</subdir>
359 +        </subdirs>
360 +   </proj>
361 +  <proj>
362 +        <name>sharp</name>
363 +        <subdirs>
364 +             <subdir>apps</subdir>
365          </subdirs>
366          <filters>
367               <filter>
368 <                  <name>JSOC_MACHINE</name>
369 <                  <value>linux_x86_64</value>
368 >                  <name>COMPILER</name>
369 >                  <value>icc</value>
370               </filter>
371         </filters>
372     </proj>
373    <proj>
374 <        <name>rings</name>
374 >        <name>farside</name>
375 >        <subdirs>
376 >             <subdir>apps</subdir>
377 >        </subdirs>
378 >   </proj>
379 >  <proj>
380 >        <name>timed</name>
381          <subdirs>
382               <subdir>apps</subdir>
383          </subdirs>
# Line 143 | Line 385 | __PROJ__
385     <proj>
386          <name>mag</name>
387          <subdirs>
146             <subdir>apps</subdir>
388               <subdir>pfss/apps</subdir>
389               <subdir>ambig/apps</subdir>
390 +             <subdir>harp/apps</subdir>
391 +             <subdir>harp/libs/matlab/mex/src/util</subdir>
392 +             <subdir>harp/libs/matlab/mex/src/mex2c</subdir>
393 +             <subdir>harp/libs/matlab/mfile-mex/standalone</subdir>
394 +             <subdir>harp/libs/matlab/mfile-mex/assignment</subdir>
395 +             <subdir>harp/libs/matlab/mfile-mex/fits</subdir>
396 +             <subdir>harp/libs/matlab/mfile-mex/hmi-mask-patch</subdir>
397               <subdir>ident/apps</subdir>
398               <subdir>ident/libs/mex2c</subdir>
399               <subdir>ident/libs/mexfunctions</subdir>
400               <subdir>ident/libs/util</subdir>
401 +             <subdir>libs</subdir>
402 +             <subdir>libs/util</subdir>
403               <subdir>patch/apps</subdir>
404 +             <subdir>nlfff/apps</subdir>
405 +             <subdir>d4vm/apps</subdir>
406 +             <subdir>remapmags/apps</subdir>
407 +             <subdir>synop/apps</subdir>
408 +             <subdir>polarfield/apps</subdir>
409          </subdirs>
410          <filters>
411               <filter>
# Line 164 | Line 419 | __PROJ__
419          <subdirs>
420              <subdir>apps</subdir>
421          </subdirs>
422 +        <filters>
423 +             <filter>
424 +                  <name>COMPILER</name>
425 +                  <value>icc</value>
426 +             </filter>
427 +       </filters>
428     </proj>
429     <proj>
430          <name>vfisv</name>
# Line 177 | Line 438 | __PROJ__
438              <subdir>apps</subdir>
439          </subdirs>
440     </proj>
441 +   <proj>
442 +        <name>cgem</name>
443 +        <subdirs>
444 +             <subdir>apps</subdir>
445 +             <subdir>lorentz/apps</subdir>
446 +             <subdir>pdfi/apps</subdir>
447 +        </subdirs>
448 +        <filters>
449 +             <filter>
450 +                  <name>COMPILER</name>
451 +                  <value>icc</value>
452 +             </filter>
453 +       </filters>
454 +   </proj>
455   </projects>
456 < __END__
457 < __LIBS__
183 < # JSOC_SDP third-party libraries used by base
184 <    POSTGRES_LIB = pq
185 <    CFITSIO_LIB = cfitsio
456 > __PROJCFG__
457 > #! /bin/csh -f
458  
459 <    ifeq ($(JSOC_MACHINE), linux_x86_64)
188 <      POSTGRES_INCS = /usr/include
189 <      POSTGRES_LIBS = /usr/lib64
190 <      CFITSIO_INCS = /home/jsoc/include
191 <      CFITSIO_LIBS = /home/jsoc/lib/linux-x86_64
192 <    endif
193 <
194 <    ifeq ($(JSOC_MACHINE), linux_ia32)
195 <      POSTGRES_INCS = /usr/include
196 <      POSTGRES_LIBS = /usr/lib
197 <      CFITSIO_INCS = /home/jsoc/include
198 <      CFITSIO_LIBS = /home/jsoc/lib/linux-ia32
199 <    endif
200 <
201 <    ifeq ($(JSOC_MACHINE), linux_ia64)
202 <      POSTGRES_INCS = /usr/include/pgsql
203 <      POSTGRES_LIBS = /usr/lib
204 <      CFITSIO_INCS = /home/jsoc/include
205 <      CFITSIO_LIBS = /home/jsoc/lib/linux-x86_64
206 <    endif
207 <
208 < # JSOC_SDP third-party libraries used by the project directories
209 <    FFTW3_LIB = fftw3
210 <
211 <    ifeq ($(JSOC_MACHINE), linux_ia32)
212 <      FFTW_INCS = /home/jsoc/include
213 <      FFTW_LIBS = /home/jsoc/lib/linux-ia32
214 <    endif
215 <
216 <    ifeq ($(JSOC_MACHINE), linux_x86_64)
217 <      FFTW_INCS = /home/jsoc/include
218 <      FFTW_LIBS = /home/jsoc/lib/linux-x86_64
219 <    endif
220 <
221 < # Try to specialize for non-default machines
222 <    ifeq ($(MACHTYPE), j1)
223 <      POSTGRES_INCS = /usr/include/pgsql
224 <      POSTGRES_LIBS = /usr/lib64
225 <      CFITSIO_INCS = /home/jsoc/include
226 <      CFITSIO_LIBS = /home/jsoc/lib/linux-x86_64
227 <    endif
228 <
229 <    ifeq ($(MACHTYPE), d02)
230 <      POSTGRES_INCS = /usr/include/pgsql
231 <      POSTGRES_LIBS = /usr/lib
232 <      CFITSIO_INCS = __CFITSIO_NOT_INSTALLED__
233 <      CFITSIO_LIBS = __CFITSIO_NOT_INSTALLED__
234 <   endif
235 <
236 <    ifeq ($(MACHTYPE), dbserver)
237 <      POSTGRES_INCS = /usr/local/pgsql/include
238 <      POSTGRES_LIBS = /usr/lib64
239 <      CFITSIO_INCS = /home/jsoc/include
240 <      CFITSIO_LIBS = /home/jsoc/lib/linux-x86_64
241 <    endif
459 > set PERLBIN = ""
460  
461 <    ifeq ($(MACHTYPE), cluster)
462 <      POSTGRES_INCS = __POSTGRES_DEVELOP_NOT_INSTALLED__
463 <      POSTGRES_LIBS = /usr/lib64
464 <      CFITSIO_INCS = /home/jsoc/include
465 <      CFITSIO_LIBS = /home/jsoc/lib/linux-x86_64
461 > if ($PERLBIN == "") then
462 >    if (-x /home/jsoc/bin/linux_x86_64/activeperl) then
463 >        set PERLBIN = "/home/jsoc/bin/linux_x86_64/activeperl"
464 >    else
465 >        set PERLBIN = "perl"
466      endif
467 + endif
468  
469 <    ifeq ($(MACHTYPE), dcs)
470 <      POSTGRES_INCS = /usr/include/pgsql
471 <      POSTGRES_LIBS = /usr/lib64
253 <      CFITSIO_INCS = /home/jsoc/include
254 <      CFITSIO_LIBS = /home/jsoc/lib/linux-x86_64
255 <    endif
256 < # Set custom make file to tell the make system that the gcc cfitsio library is called
257 < # libcfitsio_gcc.a
258 <    ifeq ($(COMPILER), gcc)
259 <      ifeq ($(JSOC_MACHINE), linux_x86_64)
260 <        CFITSIO_LIB = cfitsio_gcc
261 <      endif
262 <    endif
263 < __END__
469 > # Project-specific configuration (like adding links to scripts to the $JSOCROOT/scripts
470 > # directory).
471 > find ../proj/lev0/scripts -mindepth 1 -path \*CVS -prune -o -print | ${PERLBIN} -MFile::Basename -n -e 'my($bn) = basename($_); chomp($bn); my($path) = $_; chomp($path); if (!(-e $bn)) { `ln -s $_`; if ($? >> 8 == 0) { print "   " . $path . " OK\n"; } else { print "   " . $path . " ERROR - could not create link\n"; } }'

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines