John Lask's new makefile
authorDaniel Stenberg <daniel@haxx.se>
Mon, 5 Nov 2001 11:56:26 +0000 (11:56 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Mon, 5 Nov 2001 11:56:26 +0000 (11:56 +0000)
lib/Makefile.vc6

index 25481a7..b28f77d 100644 (file)
 #############################################################\r
 #\r
-## Makefile for building libcurl.lib with MSVC6\r
-## Use: nmake -f makefile.vc6 [release | release-ssl | debug]\r
-##      (default is release)\r
-##\r
-## Originally written by: Troy Engel <tengel@sonic.net>\r
-## Updated by: Craig Davison <cd@securityfocus.com>\r
-## Updated by: SM <sm@technologist.com>\r
-\r
-PROGRAM_NAME = libcurl.lib\r
-PROGRAM_NAME_DEBUG = libcurld.lib\r
-#OPENSSL_PATH = ../../openssl-0.9.6b\r
-\r
-########################################################\r
-## Nothing more to do below this line!\r
-\r
-## Release\r
-CCR = cl.exe /MD /O2 /D "NDEBUG"\r
-LINKR = link.exe -lib /out:$(PROGRAM_NAME)\r
+# Makefile for building libcurl with MSVC6\r
+#\r
+# Usage: see usage message below\r
+#        Should be invoked from \lib directory\r
+#        Edit the paths and desired library name\r
+#        SSL path is only required if you intend compiling \r
+#        with SSL.\r
+#\r
+# This make file leaves the result either a .lib or .dll file\r
+# in the \lib directory. It should be called from the \lib\r
+# directory.\r
+#\r
+# An option would have been to allow the source directory to\r
+# be specified, but I saw no requirement.\r
+#\r
+# Another option would have been to leave the .lib and .dll\r
+# files in the "cfg" directory, but then the make file\r
+# in \src would need to be changed.      \r
+#      \r
+##############################################################\r
+# CHANGE LOG \r
+# ------------------------------------------------------------\r
+# 05.11.2001   John Lask   Initial Release\r
+# \r
+#\r
+##############################################################\r
 \r
-## Debug\r
-CCD = cl.exe /MDd /Gm /ZI /Od /D "_DEBUG" /GZ\r
-LINKD = link.exe -lib /out:$(PROGRAM_NAME_DEBUG)\r
+LIB_NAME       = libcurl\r
+LIB_NAME_DEBUG = libcurl\r
+OPENSSL_PATH   = ../../openssl-0.9.6\r
 \r
-## SSL Release\r
-CCRS = cl.exe /MD /O2 /D "NDEBUG" /D "USE_SSLEAY" /I "$(OPENSSL_PATH)/inc32" /I "$(OPENSSL_PATH)/inc32/openssl"\r
-LINKRS = link.exe -lib /out:$(PROGRAM_NAME) /LIBPATH:$(OPENSSL_PATH)/out32dll\r
+#############################################################\r
+## Nothing more to do below this line!\r
 \r
+CCNODBG   = cl.exe /MD /O2 /D "NDEBUG"\r
+CCDEBUG   = cl.exe /MDd /Od /Gm /Zi  /D "_DEBUG" /GZ\r
+CFLAGSSSL = /D "USE_SSLEAY" /I "$(OPENSSL_PATH)/inc32" /I "$(OPENSSL_PATH)/inc32/openssl"\r
 CFLAGS = /I "../include" /nologo /W3 /GX /D "WIN32" /D "VC6" /D "_MBCS" /D "_LIB" /YX /FD /c /D "MSDOS"\r
-LFLAGS = /nologo\r
-LINKLIBS = ws2_32.lib\r
-LINKSLIBS = libeay32.lib ssleay32.lib RSAglue.lib\r
-\r
-RELEASE_OBJS= \\r
-       base64r.obj \\r
-       cookier.obj \\r
-       transferr.obj \\r
-       escaper.obj \\r
-       formdatar.obj \\r
-       ftpr.obj \\r
-       httpr.obj \\r
-       http_chunksr.obj \\r
-       ldapr.obj \\r
-       dictr.obj \\r
-       telnetr.obj \\r
-       getdater.obj \\r
-       getenvr.obj \\r
-       getpassr.obj \\r
-       hostipr.obj \\r
-       if2ipr.obj \\r
-       mprintfr.obj \\r
-       netrcr.obj \\r
-       progressr.obj \\r
-       sendfr.obj \\r
-       speedcheckr.obj \\r
-       ssluser.obj \\r
-       timevalr.obj \\r
-       urlr.obj \\r
-       filer.obj \\r
-       getinfor.obj \\r
-       versionr.obj \\r
-       easyr.obj \\r
-       strequalr.obj \\r
-       strtokr.obj \\r
-       connectr.obj\r
-\r
-DEBUG_OBJS= \\r
-       base64d.obj \\r
-       cookied.obj \\r
-       transferd.obj \\r
-       escaped.obj \\r
-       formdatad.obj \\r
-       ftpd.obj \\r
-       httpd.obj \\r
-       http_chunksd.obj \\r
-       ldapd.obj \\r
-       dictd.obj \\r
-       telnetd.obj \\r
-       getdated.obj \\r
-       getenvd.obj \\r
-       getpassd.obj \\r
-       hostipd.obj \\r
-       if2ipd.obj \\r
-       mprintfd.obj \\r
-       netrcd.obj \\r
-       progressd.obj \\r
-       sendfd.obj \\r
-       speedcheckd.obj \\r
-       sslused.obj \\r
-       timevald.obj \\r
-       urld.obj \\r
-       filed.obj \\r
-       getinfod.obj \\r
-       versiond.obj  \\r
-       easyd.obj \\r
-       strequald.obj \\r
-       strtokd.obj \\r
-       connectd.obj\r
-\r
-RELEASE_SSL_OBJS= \\r
-       base64rs.obj \\r
-       cookiers.obj \\r
-       transferrs.obj \\r
-       escapers.obj \\r
-       formdatars.obj \\r
-       ftprs.obj \\r
-       httprs.obj \\r
-       http_chunksrs.obj \\r
-       ldaprs.obj \\r
-       dictrs.obj \\r
-       telnetrs.obj \\r
-       getdaters.obj \\r
-       getenvrs.obj \\r
-       getpassrs.obj \\r
-       hostiprs.obj \\r
-       if2iprs.obj \\r
-       mprintfrs.obj \\r
-       netrcrs.obj \\r
-       progressrs.obj \\r
-       sendfrs.obj \\r
-       speedcheckrs.obj \\r
-       sslusers.obj \\r
-       timevalrs.obj \\r
-       urlrs.obj \\r
-       filers.obj \\r
-       getinfors.obj \\r
-       versionrs.obj \\r
-       easyrs.obj \\r
-       strequalrs.obj \\r
-       strtokrs.obj \\r
-       connectrs.obj\r
-\r
-LINK_OBJS= \\r
-       base64.obj \\r
-       cookie.obj \\r
-       transfer.obj \\r
-       escape.obj \\r
-       formdata.obj \\r
-       ftp.obj \\r
-       http.obj \\r
-       http_chunks.obj \\r
-       ldap.obj \\r
-       dict.obj \\r
-       telnet.obj \\r
-       getdate.obj \\r
-       getenv.obj \\r
-       getpass.obj \\r
-       hostip.obj \\r
-       if2ip.obj \\r
-       mprintf.obj \\r
-       netrc.obj \\r
-       progress.obj \\r
-       sendf.obj \\r
-       speedcheck.obj \\r
-       ssluse.obj \\r
-       timeval.obj \\r
-       url.obj \\r
-       file.obj \\r
-       getinfo.obj \\r
-       version.obj \\r
-       easy.obj \\r
-       strequal.obj \\r
-       strtok.obj \\r
-       connect.obj\r
-\r
-all : release\r
-\r
-release: $(RELEASE_OBJS)\r
-       $(LINKR) $(LFLAGS) $(LINKLIBS) $(LINK_OBJS)\r
-\r
-debug: $(DEBUG_OBJS)\r
-       $(LINKD) $(LFLAGS) $(LINKLIBS) $(LINK_OBJS)\r
-\r
-release-ssl: $(RELEASE_SSL_OBJS)\r
-       $(LINKRS) $(LFLAGS) $(LINKLIBS) $(LINKSLIBS) $(LINK_OBJS)\r
-\r
-## Release\r
-base64r.obj: base64.c\r
-       $(CCR) $(CFLAGS) base64.c\r
-cookier.obj: cookie.c\r
-       $(CCR) $(CFLAGS) cookie.c\r
-transferr.obj: transfer.c\r
-       $(CCR) $(CFLAGS) transfer.c\r
-escaper.obj: escape.c\r
-       $(CCR) $(CFLAGS) escape.c\r
-formdatar.obj: formdata.c\r
-       $(CCR) $(CFLAGS) formdata.c\r
-ftpr.obj: ftp.c\r
-       $(CCR) $(CFLAGS) ftp.c\r
-httpr.obj: http.c\r
-       $(CCR) $(CFLAGS) http.c\r
-http_chunksr.obj: http_chunks.c\r
-       $(CCR) $(CFLAGS) http_chunks.c\r
-ldapr.obj: ldap.c\r
-       $(CCR) $(CFLAGS) ldap.c\r
-dictr.obj: dict.c\r
-       $(CCR) $(CFLAGS) dict.c\r
-telnetr.obj: telnet.c\r
-       $(CCR) $(CFLAGS) telnet.c\r
-getdater.obj: getdate.c\r
-       $(CCR) $(CFLAGS) getdate.c\r
-getenvr.obj: getenv.c\r
-       $(CCR) $(CFLAGS) getenv.c\r
-getpassr.obj: getpass.c\r
-       $(CCR) $(CFLAGS) getpass.c\r
-hostipr.obj: hostip.c\r
-       $(CCR) $(CFLAGS) hostip.c\r
-if2ipr.obj: if2ip.c\r
-       $(CCR) $(CFLAGS) if2ip.c\r
-mprintfr.obj: mprintf.c\r
-       $(CCR) $(CFLAGS) mprintf.c\r
-netrcr.obj: netrc.c\r
-       $(CCR) $(CFLAGS) netrc.c\r
-progressr.obj: progress.c\r
-       $(CCR) $(CFLAGS) progress.c\r
-sendfr.obj: sendf.c\r
-       $(CCR) $(CFLAGS) sendf.c\r
-speedcheckr.obj: speedcheck.c\r
-       $(CCR) $(CFLAGS) speedcheck.c\r
-ssluser.obj: ssluse.c\r
-       $(CCR) $(CFLAGS) ssluse.c\r
-timevalr.obj: timeval.c\r
-       $(CCR) $(CFLAGS) timeval.c\r
-urlr.obj: url.c\r
-       $(CCR) $(CFLAGS) url.c\r
-filer.obj: file.c\r
-       $(CCR) $(CFLAGS) file.c\r
-getinfor.obj: getinfo.c\r
-       $(CCR) $(CFLAGS) getinfo.c\r
-versionr.obj: version.c\r
-       $(CCR) $(CFLAGS) version.c\r
-easyr.obj: easy.c\r
-       $(CCR) $(CFLAGS) easy.c\r
-strequalr.obj: strequal.c\r
-       $(CCR) $(CFLAGS) strequal.c\r
-strtokr.obj:strtok.c\r
-       $(CCR) $(CFLAGS) strtok.c\r
-connectr.obj:connect.c\r
-       $(CCR) $(CFLAGS) connect.c\r
-\r
-## Debug\r
-base64d.obj: base64.c\r
-       $(CCD) $(CFLAGS) base64.c\r
-cookied.obj: cookie.c\r
-       $(CCD) $(CFLAGS) cookie.c\r
-transferd.obj: transfer.c\r
-       $(CCD) $(CFLAGS) transfer.c\r
-escaped.obj: escape.c\r
-       $(CCD) $(CFLAGS) escape.c\r
-formdatad.obj: formdata.c\r
-       $(CCD) $(CFLAGS) formdata.c\r
-ftpd.obj: ftp.c\r
-       $(CCD) $(CFLAGS) ftp.c\r
-httpd.obj: http.c\r
-       $(CCD) $(CFLAGS) http.c\r
-http_chunksd.obj: http_chunks.c\r
-       $(CCD) $(CFLAGS) http_chunks.c\r
-ldapd.obj: ldap.c\r
-       $(CCD) $(CFLAGS) ldap.c\r
-dictd.obj: dict.c\r
-       $(CCD) $(CFLAGS) dict.c\r
-telnetd.obj: telnet.c\r
-       $(CCD) $(CFLAGS) telnet.c\r
-getdated.obj: getdate.c\r
-       $(CCD) $(CFLAGS) getdate.c\r
-getenvd.obj: getenv.c\r
-       $(CCD) $(CFLAGS) getenv.c\r
-getpassd.obj: getpass.c\r
-       $(CCD) $(CFLAGS) getpass.c\r
-hostipd.obj: hostip.c\r
-       $(CCD) $(CFLAGS) hostip.c\r
-if2ipd.obj: if2ip.c\r
-       $(CCD) $(CFLAGS) if2ip.c\r
-mprintfd.obj: mprintf.c\r
-       $(CCD) $(CFLAGS) mprintf.c\r
-netrcd.obj: netrc.c\r
-       $(CCD) $(CFLAGS) netrc.c\r
-progressd.obj: progress.c\r
-       $(CCD) $(CFLAGS) progress.c\r
-sendfd.obj: sendf.c\r
-       $(CCD) $(CFLAGS) sendf.c\r
-speedcheckd.obj: speedcheck.c\r
-       $(CCD) $(CFLAGS) speedcheck.c\r
-sslused.obj: ssluse.c\r
-       $(CCD) $(CFLAGS) ssluse.c\r
-timevald.obj: timeval.c\r
-       $(CCD) $(CFLAGS) timeval.c\r
-urld.obj: url.c\r
-       $(CCD) $(CFLAGS) url.c\r
-filed.obj: file.c\r
-       $(CCD) $(CFLAGS) file.c\r
-getinfod.obj: getinfo.c\r
-       $(CCD) $(CFLAGS) getinfo.c\r
-versiond.obj: version.c\r
-       $(CCD) $(CFLAGS) version.c\r
-easyd.obj: easy.c\r
-       $(CCD) $(CFLAGS) easy.c\r
-strequald.obj: strequal.c\r
-       $(CCD) $(CFLAGS) strequal.c\r
-strtokd.obj:strtok.c\r
-       $(CCD) $(CFLAGS) strtok.c\r
-connectd.obj:connect.c\r
-       $(CCR) $(CFLAGS) connect.c\r
-\r
-## Release SSL\r
-base64rs.obj: base64.c\r
-       $(CCRS) $(CFLAGS) base64.c\r
-cookiers.obj: cookie.c\r
-       $(CCRS) $(CFLAGS) cookie.c\r
-transferrs.obj: transfer.c\r
-       $(CCRS) $(CFLAGS) transfer.c\r
-escapers.obj: escape.c\r
-       $(CCRS) $(CFLAGS) escape.c\r
-formdatars.obj: formdata.c\r
-       $(CCRS) $(CFLAGS) formdata.c\r
-ftprs.obj: ftp.c\r
-       $(CCRS) $(CFLAGS) ftp.c\r
-httprs.obj: http.c\r
-       $(CCRS) $(CFLAGS) http.c\r
-http_chunksrs.obj: http_chunks.c\r
-       $(CCRS) $(CFLAGS) http_chunks.c\r
-ldaprs.obj: ldap.c\r
-       $(CCRS) $(CFLAGS) ldap.c\r
-dictrs.obj: dict.c\r
-       $(CCRS) $(CFLAGS) dict.c\r
-telnetrs.obj: telnet.c\r
-       $(CCRS) $(CFLAGS) telnet.c\r
-getdaters.obj: getdate.c\r
-       $(CCRS) $(CFLAGS) getdate.c\r
-getenvrs.obj: getenv.c\r
-       $(CCRS) $(CFLAGS) getenv.c\r
-getpassrs.obj: getpass.c\r
-       $(CCRS) $(CFLAGS) getpass.c\r
-hostiprs.obj: hostip.c\r
-       $(CCRS) $(CFLAGS) hostip.c\r
-if2iprs.obj: if2ip.c\r
-       $(CCRS) $(CFLAGS) if2ip.c\r
-mprintfrs.obj: mprintf.c\r
-       $(CCRS) $(CFLAGS) mprintf.c\r
-netrcrs.obj: netrc.c\r
-       $(CCRS) $(CFLAGS) netrc.c\r
-progressrs.obj: progress.c\r
-       $(CCRS) $(CFLAGS) progress.c\r
-sendfrs.obj: sendf.c\r
-       $(CCRS) $(CFLAGS) sendf.c\r
-speedcheckrs.obj: speedcheck.c\r
-       $(CCRS) $(CFLAGS) speedcheck.c\r
-sslusers.obj: ssluse.c\r
-       $(CCRS) $(CFLAGS) ssluse.c\r
-timevalrs.obj: timeval.c\r
-       $(CCRS) $(CFLAGS) timeval.c\r
-urlrs.obj: url.c\r
-       $(CCRS) $(CFLAGS) url.c\r
-filers.obj: file.c\r
-       $(CCRS) $(CFLAGS) file.c\r
-getinfors.obj: getinfo.c\r
-       $(CCRS) $(CFLAGS) getinfo.c\r
-versionrs.obj: version.c\r
-       $(CCRS) $(CFLAGS) version.c\r
-easyrs.obj: easy.c\r
-       $(CCRS) $(CFLAGS) easy.c\r
-strequalrs.obj: strequal.c\r
-       $(CCRS) $(CFLAGS) strequal.c\r
-strtokrs.obj:strtok.c\r
-       $(CCRS) $(CFLAGS) strtok.c\r
-connectrs.obj:connect.c\r
-       $(CCR) $(CFLAGS) connect.c\r
+\r
+LNKDLL    = link.exe /DLL  /def:libcurl.def\r
+LNKLIB    = link.exe -lib\r
+LFLAGS    = /nologo\r
+LFLAGSSSL = /LIBPATH:$(OPENSSL_PATH)/out32dll\r
+LINKLIBS  = ws2_32.lib\r
+SSLLIBS   = libeay32.lib ssleay32.lib RSAglue.lib\r
+CFGSET    = FALSE\r
+\r
+######################\r
+# release\r
+\r
+!IF "$(CFG)" == "release" \r
+TARGET =$(LIB_NAME).lib\r
+DIROBJ =.\$(CFG)\r
+LNK    = $(LNKLIB) /out:$(TARGET)\r
+CC     = $(CCNODBG)\r
+CFGSET = TRUE\r
+!ENDIF\r
+\r
+######################\r
+# release-dll\r
+\r
+!IF "$(CFG)" == "release-dll" \r
+TARGET =$(LIB_NAME).dll\r
+DIROBJ =.\$(CFG)\r
+LNK    = $(LNKDLL) /out:$(TARGET) /IMPLIB:"$(LIB_NAME).lib"\r
+CC     = $(CCNODBG)\r
+CFGSET = TRUE\r
+!ENDIF\r
+\r
+######################\r
+# release-ssl\r
+#todo\r
+!IF "$(CFG)" == "release-ssl" \r
+TARGET   =$(LIB_NAME).dll\r
+DIROBJ   =.\$(CFG)\r
+LNK      = $(LNKLIB) $(LFLAGSSSL) /out:$(TARGET)\r
+LINKLIBS = $(LINKLIBS) $(SSLLIBS)\r
+CC       = $(CCNODBG) $(CFLAGSSSL)\r
+CFGSET   = TRUE \r
+!ENDIF\r
+\r
+######################\r
+# release-ssl-dll\r
+\r
+!IF "$(CFG)" == "release-ssl-dll" \r
+TARGET   =$(LIB_NAME).dll\r
+DIROBJ   =.\$(CFG)\r
+LNK      = $(LNKDLL) $(LFLAGSSSL) /out:$(TARGET) /IMPLIB:"$(LIB_NAME).lib" \r
+LINKLIBS = $(LINKLIBS) $(SSLLIBS)\r
+CC       = $(CCNODBG)  $(CFLAGSSSL)\r
+CFGSET   = TRUE \r
+!ENDIF\r
+\r
+\r
+\r
+\r
+######################\r
+# debug\r
+\r
+!IF "$(CFG)" == "debug" \r
+TARGET =$(LIB_NAME_DEBUG).lib\r
+DIROBJ =.\$(CFG)\r
+LNK    = $(LNKLIB) /out:$(TARGET)\r
+CC     = $(CCDEBUG)\r
+CFGSET = TRUE\r
+!ENDIF\r
+\r
+######################\r
+# debug-dll\r
+\r
+!IF "$(CFG)" == "debug-dll" \r
+TARGET =$(LIB_NAME_DEBUG).dll\r
+DIROBJ =.\$(CFG)\r
+LNK    = $(LNKDLL) /out:$(TARGET) /IMPLIB:"$(LIB_NAME_DEBUG).lib"\r
+CC     = $(CCDEBUG)\r
+CFGSET = TRUE\r
+!ENDIF\r
+\r
+######################\r
+# debug-ssl\r
+#todo\r
+!IF "$(CFG)" == "debug-ssl" \r
+TARGET   = $(LIB_NAME_DEBUG).lib\r
+DIROBJ   =.\$(CFG)\r
+LNK      = $(LNKLIB) $(LFLAGSSSL) /out:$(TARGET)\r
+LINKLIBS = $(LINKLIBS) $(SSLLIBS)\r
+CC       = $(CCDEBUG) $(CFLAGSSSL)\r
+CFGSET   = TRUE\r
+!ENDIF\r
+\r
+######################\r
+# debug-ssl-dll\r
+\r
+!IF "$(CFG)" == "debug-ssl-dll" \r
+TARGET   =$(LIB_NAME_DEBUG).dll\r
+DIROBJ   =.\$(CFG)\r
+LNK      = $(LNKDLL) $(LFLAGSSSL) /out:$(TARGET) /IMPLIB:"$(LIB_NAME_DEBUG).lib" \r
+LINKLIBS = $(LINKLIBS) $(SSLLIBS)\r
+CC       = $(CCDEBUG) $(CFLAGSSSL)\r
+CFGSET   = TRUE\r
+!ENDIF\r
+\r
+#######################\r
+# Usage\r
+#\r
+!IF "$(CFGSET)" == "FALSE"\r
+!MESSAGE Usage: nmake -f makefile.vc6 CFG=<config> <target>\r
+!MESSAGE where <config> is one of:\r
+!MESSAGE   release          - release static library\r
+!MESSAGE   release-dll      - release dll\r
+!MESSAGE   release-ssl      - release static library with ssl\r
+!MESSAGE   release-ssl-dll  - release dll library with ssl\r
+!MESSAGE   debug            - debug static library\r
+!MESSAGE   debug-dll        - debug dll\r
+!MESSAGE   debug-ssl        - debug static library with ssl\r
+!MESSAGE   debug-ssl-dll    - debug dll library with ssl\r
+!MESSAGE <target> can be left blank in which case all is assumed\r
+!ERROR please choose a valid configuration "$(CFG)"\r
+!ENDIF\r
+\r
+#######################\r
+#\r
+X_OBJS= \\r
+       $(DIROBJ)\base64.obj \\r
+       $(DIROBJ)\cookie.obj \\r
+       $(DIROBJ)\transfer.obj \\r
+       $(DIROBJ)\escape.obj \\r
+       $(DIROBJ)\formdata.obj \\r
+       $(DIROBJ)\ftp.obj \\r
+       $(DIROBJ)\http.obj \\r
+       $(DIROBJ)\http_chunks.obj \\r
+       $(DIROBJ)\ldap.obj \\r
+       $(DIROBJ)\dict.obj \\r
+       $(DIROBJ)\telnet.obj \\r
+       $(DIROBJ)\getdate.obj \\r
+       $(DIROBJ)\getenv.obj \\r
+       $(DIROBJ)\getpass.obj \\r
+       $(DIROBJ)\hostip.obj \\r
+       $(DIROBJ)\if2ip.obj \\r
+       $(DIROBJ)\mprintf.obj \\r
+       $(DIROBJ)\netrc.obj \\r
+       $(DIROBJ)\progress.obj \\r
+       $(DIROBJ)\sendf.obj \\r
+       $(DIROBJ)\speedcheck.obj \\r
+       $(DIROBJ)\ssluse.obj \\r
+       $(DIROBJ)\timeval.obj \\r
+       $(DIROBJ)\url.obj \\r
+       $(DIROBJ)\file.obj \\r
+       $(DIROBJ)\getinfo.obj \\r
+       $(DIROBJ)\version.obj \\r
+       $(DIROBJ)\easy.obj \\r
+       $(DIROBJ)\strequal.obj \\r
+       $(DIROBJ)\strtok.obj\r
+\r
+\r
+all : $(TARGET)\r
+\r
+\r
+$(TARGET): $(X_OBJS)\r
+       $(LNK) $(LFLAGS) $(LINKLIBS) $(X_OBJS)\r
+\r
+$(X_OBJS): $(DIROBJ)\r
+\r
+$(DIROBJ):\r
+       @if not exist "$(DIROBJ)" mkdir $(DIROBJ)\r
+\r
+.SUFFIXES: .c .obj\r
+\r
+{.\}.c{$(DIROBJ)\}.obj:\r
+       $(CC) $(CFLAGS) /Fo"$@"  $<\r
 \r
 clean:\r
-       -@erase *.obj\r
+       -@erase $(DIROBJ)\*.obj\r
        -@erase vc60.idb\r
-       -@erase vc60.pch\r
-\r
-distrib: clean\r
-       -@erase $(PROGRAM_NAME)\r
-\r
+       -@erase vc60.pch
\ No newline at end of file