⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 makefile.lsp

📁 Audacity是一款用於錄音和編輯聲音的、免費的開放源碼軟體。它可以執行於Mac OS X、Microsoft Windows、GNU/Linux和其它作業系統
💻 LSP
📖 第 1 页 / 共 2 页
字号:
               (add-prefix "fft/" fftfiles)               (add-prefix "nyqsrc/" intfiles)               (add-prefix "snd/" sndfiles)               '("sys/unix/osstuff" "sys/unix/term"))))    (setf flist (add-suffix flist ".o"))    (format outf "OBJECTS = ")    (write-file-list outf flist)));; add-prefix - place string at beginning of each string in list;;(defun add-prefix (prefix lis)  (mapcar #'(lambda (str) (strcat prefix str)) lis));; add-suffix - place string at end of each string in list;;(defun add-suffix (lis suffix)  (mapcar #'(lambda (str) (strcat str suffix)) lis));; write-file-list - write file names to Make macro;;(defun write-file-list (outf flist)  (while flist     (dotimes (i 4)          (format outf "~A " (car flist))          (setf flist (cdr flist))          (if (null flist) (return)))     (if flist (format outf " \\~%\t")))  (format outf "~%~%"))(defun nyqheaders (outf)  (let ((flist (append        (list "snd/snd")        (add-prefix "nyqsrc/"         '("sound" "downsample" "sndread" "sndseq" "add"           "multiseq" "samples" "sndwrite" "sndmax" "compose"            "inverse" "resamp" "resampv" "fft" "avg"))        (add-prefix "tran/" transfiles))))    (setf flist (mapcar #'(lambda (f) (strcat f ".h")) flist))    (format outf "NYQHDRS = ")    (write-file-list outf flist)))(defun cmtheaders (outf)  (let ((flist      (append '("cmt/seqdecls" "nyqsrc/seqext" "cmt/seq"           "nyqsrc/seqinterf")  ; order is important here!         (add-prefix "cmt/"          '("seqread" "seqmread" "seqwrite" "seqmwrite")))))    (setf flist (add-suffix flist ".h"))    (format outf "CMTHDRS = ")    (write-file-list outf flist)))(defun dependencies (outf system-name)  ;; this forces generation of sndfnintdefs.h, seqfnintdefs.h:  (dolist (f (append (add-prefix "nyqsrc/" nyqfiles)             (add-prefix "snd/" sndfiles)             (add-prefix "fft/" fftfiles)             (add-prefix "tran/" transfiles)             (add-prefix "nyqsrc/" intfiles)))    (let ((ex (assoc f depends-exceptions :test #'equal)))      (cond ((and ex (cdr ex))         (format outf "~A.o: ~A.c ~A~%" f f (cadr ex))         (format outf "\tcc -c ~A.c -o ~A.o $(CFLAGS)~%~%" f f))        (t         (format outf "~A.o: ~A.c ~A.h nyqsrc/sound.h nyqsrc/falloc.h nyqsrc/cque.h~%"              f f f)         (format outf "\tcc -c ~A.c -o ~A.o $(CFLAGS)~%~%" f f)))))  (format outf "xlisp/xlftab.o: nyqsrc/sndfnintptrs.h nyqsrc/sndfnintdefs.h")  (format outf " nyqsrc/seqfnintptrs.h nyqsrc/seqfnintdefs.h~%")  (format outf "\tcc -c xlisp/xlftab.c -o xlisp/xlftab.o $(CFLAGS)~%~%")  (dolist (f (append (add-prefix "xlisp/" xlfiles)             (add-prefix "cmt/" cmtfiles)             '("sys/unix/osstuff")))    (cond ((and (not (equal f "xlisp/xlftab"))   ; special case handled above        (not (and (equal f "xlisp/xljump") ; case handled below              (equal system-name "next"))))       (format outf "~A.o: ~A.c~%\tcc -c ~A.c -o ~A.o $(CFLAGS)~%~%"           f f f f)))));; MAKESRC -- makes the Makesrc file;;(defun makesrc ()  (let (outf)    (load "misc/transfiles.lsp") ; just to make sure we're current    (format t "Writing Makesrc\n")    (setf outf (open "Makesrc" :direction :output))    (format outf "## FILE: Makefile to import sources## usage: make -f Makesrc## I want to be able to keep sources separate from objects, e.g. the# MIDI sequence code comes from the CMU MIDI Toolkit, and XLisp should# be compile-able without Nyquist.## There are tools to do this, but I don't expect to find the same tool# everywhere Nyquist is ported, so I'm taking this simple path.# Source Paths:NYQ = nyqsrcCMT = cmtXLISP = xlispTRANS = tranSND = sndEVERYTHING: sources")    (source-files outf)    (format outf "## XLISP SOURCES#")    (source-depends outf xlfiles ".c" "XLISP")    (source-depends outf xlfiles-h ".h" "XLISP")    (source-depends outf xlfiles-lsp ".lsp" "XLISP")    (format outf "## NYQUIST SOURCES#")    (source-depends outf nyqfiles ".c" "NYQ")    (source-depends outf (exceptions-filter nyqfiles) ".h" "NYQ")    (source-depends outf nyqfiles-h ".h" "NYQ")    (source-depends outf nyqfiles-lsp ".lsp" "NYQ")    (source-depends outf extrafiles "" "NYQ")    (format outf "## CMT SOURCES#")    (source-depends outf cmtfiles ".c" "CMT")    (source-depends outf (exceptions-filter cmtfiles) ".h" "CMT")    (source-depends outf cmtfiles-h ".h" "CMT")    (format outf "## TRANS SOURCES#")    (source-depends outf transfiles ".c" "TRANS")    (source-depends outf transfiles ".h" "TRANS")    (format outf "## SND SOURCES#")    (source-depends outf sndfiles ".c" "SND")    (source-depends outf sndfiles ".h" "SND")    (close outf)))        ;; SOURCE-FILES -- writes the sources: list to Makesrc;;(defun source-files (outf)  (setf flist (append xlfiles nyqfiles fftfiles cmtfiles transfiles sndfiles))  (setf flist-h (append xlfiles-h nyqfiles-h cmtfiles-h transfiles))  ; Add .c files as .h files unless exceptions list indicates there is  ; no .h file:  (setf flist-h (append (exceptions-filter nyqfiles)            (exceptions-filter cmtfiles)            (exceptions-filter sndfiles)            flist-h))  (setf flist-lsp (append xlfiles-lsp nyqfiles-lsp sndfiles-lsp))  (setf flist (mapcar #'(lambda (f) (strcat f ".c")) flist))  (setf flist-h (mapcar #'(lambda (f) (strcat f ".h")) flist-h))  (setf flist-lsp    (mapcar #'(lambda (f) (strcat f ".lsp")) flist-lsp))  (format outf "sources: ")  (write-file-list outf (append flist flist-h flist-lsp extrafiles)));; EXCEPTIONS-FILTER - remove .h files from list; the depends-exceptions tells whether a .h file exists for a .c file;; (defun exceptions-filter (files)  (let (result)    (dolist (f files)      (let ((ex (assoc f depends-exceptions :test #'equal)))    (cond (ex           (if (and (cdr ex)              (string-search (strcat f ".h") (cadr ex)))           (push f result)))          (t (push f result)))))    result));; SOURCE-DEPENDS -- write dependency for source files;;(defun source-depends (outf files ext dir)  (dolist (f files)    (let ((fname (strcat f ext)))      (format outf "~A: $(~A)/~A~%\trm -f ~A~%\tcp -p $(~A)/~A .~%\tchmod -w ~A~%~%"          fname dir fname fname dir fname fname))));;===================================================;; SYSTEM DEPENDENCIES;;===================================================(setf rs6k-defs "MIDI = /afs/cs/project/music/rs6k/midilibCC = cc# change -g to -O for optimizationCFLAGS = -DCMTSTUFF -g $(INCL) -I$(MIDI)XFLAGS = $(CFLAGS) -qlanglvl=extendedLN = xlc -qattr -qlistLFLAGS = -lm -L$(MIDI) -lmidi -lbsd -lg")(setf next-defs "CC = ccCFLAGS = -DCMTSTUFF -O $(INCL)LN = ccLFLAGS = -lm")(setf next-rules "# this doesn't compile with the -O switch (a NeXT compiler bug?)xlisp/xljump.o : xlisp/xljump.c xlisp/xlisp.h\t$(CC) -DCMTSTUFF -c xlisp/xljump.c -o xlisp/xljump.o")(setf pmax-defs "CC = ccCFLAGS = -DCMTSTUFF -g $(INCL)LN = ccLFLAGS = -lm")(setf sgi-defs "CC = ccCFLAGS = -DCMTSTUFF -g $(INCL)LN = ccLFLAGS = -lm# you would need -lmd if UNIX_IRIX_MIDIFNS were defined in midifns.c")(setf sparc-defs "CC = gccCFLAGS = -DCMTSTUFF -g $(INCL)LN = $(CC)LFLAGS = -lm")(setf linux-defs "CC = gccCFLAGS = -DCMTSTUFF -O2 $(INCL)LN = $(CC)LFLAGS = -lm")

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -