I create first series testcase for inotify.
one for test inotify on files and one for test inotify on folders
Both test case work on next scheme:
1. make some file operations
2. Check that all events get
diff -uprN ltp.old/testcases/kernel/syscalls/inotify/inotify01.c 
ltp/testcases/kernel/syscalls/inotify/inotify01.c
--- ltp.old/testcases/kernel/syscalls/inotify/inotify01.c       1970-01-01 
03:00:00.000000000 +0300
+++ ltp/testcases/kernel/syscalls/inotify/inotify01.c   2007-05-22 
17:23:23.000000000 +0400
@@ -0,0 +1,299 @@
+/*
+ * Copyright (c) 2007 SWSoft.  All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it would be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Further, this software is distributed without any warranty that it is
+ * free of the rightful claim of any third person regarding infringement
+ * or the like.  Any license provided herein, whether implied or
+ * otherwise, applies only to this software file.  Patent licenses, if
+ * any, provided herein do not apply to combinations of this program with
+ * other software, or any other product whatsoever.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write the Free Software Foundation, Inc., 59
+ * Temple Place - Suite 330, Boston MA 02111-1307, USA.
+ *
+ * Started by Andrew Vagin <[EMAIL PROTECTED]>
+ *
+ */
+/*
+ * NAME
+ *     inotify01
+ *
+ * DESCRIPTION
+ *     Check that inotify work for a file
+ *
+ * ALGORITHM
+ *     Execute sequence file's operation and check return events
+ *
+ */
+
+#include <sys/inotify.h>
+#include <stdio.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <sys/fcntl.h>
+#include <errno.h>
+#include <string.h>
+#include "test.h"
+#include "usctest.h"
+
+#define EVENT_MAX 1024
+/* size of the event structure, not counting name */
+#define EVENT_SIZE  (sizeof (struct inotify_event))
+/* reasonable guess as to size of 1024 events */
+#define EVENT_BUF_LEN        (EVENT_MAX * (EVENT_SIZE + 16))
+
+void setup();
+void cleanup();
+
+
+
+char *TCID="inotify01";         /* Test program identifier.    */
+int TST_TOTAL = 7;            /* Total number of test cases. */
+extern int Tst_count;        /* Test Case counter for tst_* routines */
+
+#define BUF_SIZE 256
+char fname[BUF_SIZE];
+char buf[BUF_SIZE];
+int fd, fd_notify;
+uint32_t wd;
+
+int event_set[EVENT_MAX];
+
+int main(int ac, char **av){
+    int lc;        /* loop counter */
+    char *msg;        /* message returned from parse_opts */
+    
+    /*
+     * parse standard options
+     */
+    if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL )
+        tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg);
+
+    /*
+     * perform global setup for test
+     */
+    setup();
+
+    /*
+     * check looping state if -c option given
+     */
+
+    for (lc=0; TEST_LOOPING(lc); lc++) {
+        Tst_count = 0;
+        /* reset Tst_count in case we are looping. */
+
+        /*
+         * generate sequence of events
+         */
+        if (chmod(fname, 0755) < 0) {
+            tst_brkm(TBROK, cleanup,
+                    "chmod(%s, 0755) Failed, errno=%d : %s",
+                    fname, errno, strerror(errno));
+        }
+        event_set[Tst_count] = IN_ATTRIB;
+        Tst_count++;
+
+        if ((fd = open(fname, O_RDONLY)) == -1) {
+            tst_brkm(TBROK, cleanup,
+              "open(%s, O_RDWR|O_CREAT,0700) Failed, errno=%d : %s",
+              fname, errno, strerror(errno));
+        }
+        event_set[Tst_count] = IN_OPEN; 
+        Tst_count++;
+
+        if (read(fd, buf, BUF_SIZE) == -1) {
+            tst_brkm(TBROK, cleanup,
+                    "read(%d, buf, %d) Failed, errno=%d : %s",
+                    fd, BUF_SIZE, errno, strerror(errno));
+        }
+        event_set[Tst_count] = IN_ACCESS;
+        Tst_count++;
+
+        if (close(fd) == -1) {
+            tst_brkm(TBROK, cleanup, 
+                    "close(%s) Failed, errno=%d : %s", 
+                    fname, errno, strerror(errno));
+        }
+        event_set[Tst_count] = IN_CLOSE_NOWRITE;
+        Tst_count++;
+
+
+        if ((fd = open(fname,O_RDWR|O_CREAT,0700)) == -1) {
+            tst_brkm(TBROK, cleanup,
+              "open(%s, O_RDWR|O_CREAT,0700) Failed, errno=%d : %s",
+              fname, errno, strerror(errno));
+        }
+        event_set[Tst_count] = IN_OPEN;
+        Tst_count++;
+
+        if (write(fd, buf, BUF_SIZE) == -1) {
+            tst_brkm(TBROK, cleanup,
+                "write(%d, %s, 1) Failed, errno=%d : %s",
+                fd, fname, errno, strerror(errno));
+        }
+        event_set[Tst_count] = IN_MODIFY;
+        Tst_count++;
+
+        if (close(fd) == -1) {
+            tst_brkm(TBROK, cleanup, 
+                    "close(%s) Failed, errno=%d : %s", 
+                    fname, errno, strerror(errno));
+        }
+        event_set[Tst_count] = IN_CLOSE_WRITE;
+        Tst_count++;
+        
+        if (TST_TOTAL != Tst_count) {
+            tst_brkm(TBROK, cleanup,
+                    "TST_TOTAL and Tst_count are not equal");
+        }
+        Tst_count = 0;
+
+        /*
+         * get list on events
+         */
+        char event_buf[EVENT_BUF_LEN];
+        int len, i = 0, test_num = 0;
+        if ((len = read(fd_notify, event_buf, EVENT_BUF_LEN)) < 0) {
+            tst_brkm(TBROK, cleanup,
+                "read(%d, buf, %d) Failed, errno=%d : %s",
+                fd_notify, EVENT_BUF_LEN, errno,
+                strerror(errno));
+
+        }
+            
+        /*
+         * check events
+         */
+        while (i < len) {
+            struct inotify_event *event;
+            event = (struct inotify_event *) &event_buf[i];
+            if (test_num >= TST_TOTAL) {
+                tst_resm(TFAIL, 
+                    "get unnecessary event: wd=%d mask=%x "
+                    "cookie=%u len=%u",
+                    event->wd, event->mask,
+                    event->cookie, event->len);
+            } else if (event_set[test_num] == event->mask){
+                tst_resm(TPASS, "get event: wd=%d mask=%x" 
+                    " cookie=%u len=%u",
+                    event->wd, event->mask,
+                    event->cookie, event->len);
+
+            } else {
+                tst_resm( TFAIL, "get event: wd=%d mask=%x "
+                    "(expected %x) cookie=%u len=%u",
+                    event->wd, event->mask,    
+                    event_set[test_num],
+                    event->cookie, event->len);
+            }
+            test_num++;
+            i += EVENT_SIZE + event->len;
+        }
+        for (; test_num<TST_TOTAL; test_num++){
+            tst_resm(TFAIL, "don't get event: mask=%x ",
+                    event_set[test_num]);
+
+        }
+
+    }    /* End for TEST_LOOPING */
+
+    /*
+     * cleanup and exit
+     */
+    cleanup();
+
+    return 0;
+}    /* End main */
+
+/*
+ * setup() - performs all ONE TIME setup for this test.
+ */
+void setup(){
+    /* capture signals */
+    tst_sig(NOFORK, DEF_HANDLER, cleanup);
+
+    /* Pause if that option was specified */
+    TEST_PAUSE;
+
+    /* make a temp directory and cd to it */
+    tst_tmpdir();
+
+    sprintf(fname,"tfile_%d",getpid());
+    if ((fd = open(fname,O_RDWR|O_CREAT,0700)) == -1) {
+        tst_brkm(TBROK, cleanup,
+            "open(%s, O_RDWR|O_CREAT,0700) Failed, errno=%d : %s",
+            fname, errno, strerror(errno));
+    }
+    if (( write(fd, fname, 1)) == -1) {
+        tst_brkm(TBROK, cleanup,
+                "write(%d, %s, 1) Failed, errno=%d : %s",
+                fd, fname, errno, strerror(errno));
+    }
+
+    /* close the file we have open */
+    if (close(fd) == -1) {
+        tst_brkm(TBROK, cleanup,
+                "close(%s) Failed, errno=%d : %s", 
+                fname, errno, strerror(errno));
+    }
+    if ((fd_notify = inotify_init ()) < 0) {
+        if( errno == ENOSYS ){
+            tst_resm(TCONF,"inotify is not configured in this kernel.");
+            tst_resm(TCONF,"Test will not run.");
+            tst_exit();
+        }else{
+            tst_brkm(TBROK, cleanup,
+                "inotify_init () Failed, errno=%d : %s",
+                errno, strerror(errno));
+        }
+    }
+
+    if ((wd = inotify_add_watch (fd_notify, fname, IN_ALL_EVENTS)) < 0){
+        tst_brkm(TBROK, cleanup,
+                "inotify_add_watch (%d, %s, IN_ALL_EVENTS)" 
+                "Failed, errno=%d : %s",
+                fd_notify, fname, errno, strerror(errno));
+    };
+
+}    /* End setup() */
+
+
+/*
+ * cleanup() - performs all ONE TIME cleanup for this test at
+ *        completion or premature exit.
+ */
+void cleanup(){
+    if (inotify_rm_watch(fd_notify, wd) < 0) {
+        tst_resm(TWARN,    "inotify_rm_watch (%d, %d) Failed,"
+                "errno=%d : %s",
+                fd_notify, wd, errno, strerror(errno));
+
+    }
+
+    if (close(fd_notify) == -1) {
+        tst_resm(TWARN, "close(%d) Failed, errno=%d : %s", 
+                fd_notify, errno, strerror(errno));
+    }
+
+
+    /*
+     * print timing stats if that option was specified.
+     * print errno log if that option was specified.
+     */
+    TEST_CLEANUP;
+
+    /* Remove tmp dir and all files in it */
+    tst_rmdir();
+
+    /* exit with return code appropriate for results */
+    tst_exit();
+}    /* End cleanup() */
diff -uprN ltp.old/testcases/kernel/syscalls/inotify/inotify02.c 
ltp/testcases/kernel/syscalls/inotify/inotify02.c
--- ltp.old/testcases/kernel/syscalls/inotify/inotify02.c       1970-01-01 
03:00:00.000000000 +0300
+++ ltp/testcases/kernel/syscalls/inotify/inotify02.c   2007-05-22 
17:23:17.000000000 +0400
@@ -0,0 +1,325 @@
+/*
+ * Copyright (c) 2007 SWSoft.  All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it would be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Further, this software is distributed without any warranty that it is
+ * free of the rightful claim of any third person regarding infringement
+ * or the like.  Any license provided herein, whether implied or
+ * otherwise, applies only to this software file.  Patent licenses, if
+ * any, provided herein do not apply to combinations of this program with
+ * other software, or any other product whatsoever.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write the Free Software Foundation, Inc., 59
+ * Temple Place - Suite 330, Boston MA 02111-1307, USA.
+ *
+ * Started by Andrew Vagin <[EMAIL PROTECTED]>
+ *
+ */
+/****************************************************************************
+ * NAME
+ *     inotify02
+ *
+ * DESCRIPTION
+ *     Check that inotify work for a directory
+ *
+ * ALGORITHM
+ *     Execute sequence file's operation and check return events
+ *
+ * ***************************************************************************/
+#include <sys/inotify.h>
+#include <stdio.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <sys/fcntl.h>
+#include <errno.h>
+#include <string.h>
+#include "test.h"
+#include "usctest.h"
+
+#define EVENT_MAX 1024
+/* size of the event structure, not counting name */
+#define EVENT_SIZE  (sizeof (struct inotify_event))
+/* reasonable guess as to size of 1024 events */
+#define EVENT_BUF_LEN        (EVENT_MAX * (EVENT_SIZE + 16))
+
+void setup();
+void cleanup();
+
+
+
+char *TCID="inotify02";         /* Test program identifier.    */
+int TST_TOTAL=9;            /* Total number of test cases. */
+extern int Tst_count;        /* Test Case counter for tst_* routines */
+
+#define BUF_SIZE 256
+char fname1[BUF_SIZE], fname2[BUF_SIZE];
+char buf[BUF_SIZE];
+int fd, fd_notify;
+uint32_t wd;
+
+struct event_t {
+        char name[BUF_SIZE];
+        uint32_t mask;
+        uint32_t len;
+};
+#define FILE_NAME1 "test_file1"
+#define FILE_NAME2 "test_file2"
+
+struct event_t event_set [EVENT_MAX];
+
+int main(int ac, char **av){
+    int lc;        /* loop counter */
+    char *msg;        /* message returned from parse_opts */
+
+    /*
+     * parse standard options
+     */
+    if ((msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL)
+        tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg);
+
+    /*
+     * perform global setup for test
+     */
+    setup();
+
+    /*
+     * check looping state if -c option given
+     */
+    for (lc=0; TEST_LOOPING(lc); lc++) {
+
+        /* reset Tst_count in case we are looping. */
+        Tst_count = 0;
+
+        /*
+         * generate sequence of events
+         */
+        if (chmod(".", 0755) < 0) {
+            tst_brkm(TBROK, cleanup,
+                "chmod(\".\", 0755) Failed, errno=%d : %s",
+                     errno, strerror(errno));
+        }
+        event_set[Tst_count].mask = IN_ISDIR | IN_ATTRIB;
+        strcpy(event_set[Tst_count].name, "");
+        Tst_count++;
+
+        if ((fd = creat(FILE_NAME1, 0755)) == -1) {
+            tst_brkm(TBROK, cleanup,
+                "creat(\"%s\", 755) Failed, errno=%d : %s",
+                fname1, errno, strerror(errno));
+        }
+        
+        event_set[Tst_count].mask = IN_CREATE;
+        strcpy(event_set[Tst_count].name, FILE_NAME1);
+        Tst_count++;
+        event_set[Tst_count].mask = IN_OPEN;
+        strcpy(event_set[Tst_count].name, FILE_NAME1);
+        Tst_count++;
+
+        if (close(fd) == -1) {
+            tst_brkm(TBROK, cleanup, 
+                    "close(%s) Failed, errno=%d : %s", 
+                    fname1, errno, strerror(errno));
+        }
+        event_set[Tst_count].mask = IN_CLOSE_WRITE;
+        strcpy(event_set[Tst_count].name, FILE_NAME1);
+        Tst_count++;
+
+        
+
+
+        if (rename(FILE_NAME1, FILE_NAME2) == -1){
+            tst_brkm(TBROK, cleanup, 
+                    "rename(%s, %s) Failed, errno=%d : %s",
+                    FILE_NAME1, FILE_NAME2,
+                    errno, strerror(errno));
+        }
+        event_set[Tst_count].mask = IN_MOVED_FROM;
+        strcpy(event_set[Tst_count].name, FILE_NAME1);
+        Tst_count++;
+        event_set[Tst_count].mask = IN_MOVED_TO;
+        strcpy(event_set[Tst_count].name, FILE_NAME2);
+        Tst_count++;
+
+
+
+        if (unlink(FILE_NAME2) == -1){
+            tst_brkm(TBROK, cleanup, 
+                    "unlink(%s) Failed, errno=%d : %s",
+                    FILE_NAME2,
+                    errno, strerror(errno));
+        }
+        event_set[Tst_count].mask = IN_DELETE;
+        strcpy(event_set[Tst_count].name, FILE_NAME2);
+        Tst_count++;
+
+
+        if (getcwd(fname1, BUF_SIZE) == NULL){
+            tst_brkm(TBROK, cleanup, 
+                    "getcwd(%x, %d) Failed, errno=%d : %s",
+                    fname1, BUF_SIZE,
+                    errno, strerror(errno));
+        }
+
+        snprintf(fname2, BUF_SIZE, "%s.rename", fname1);
+        if (rename(fname1, fname2) == -1){
+            tst_brkm(TBROK, cleanup, 
+                    "rename(%s, %s) Failed, errno=%d : %s",
+                    fname1, fname2,
+                    errno, strerror(errno));
+        }
+        event_set[Tst_count].mask = IN_MOVE_SELF;
+        strcpy(event_set[Tst_count].name, "");
+        Tst_count++;
+
+
+        if (rename(fname2, fname1) == -1){
+            tst_brkm(TBROK, cleanup, 
+                    "rename(%s, %s) Failed, errno=%d : %s",
+                    fname1, fname2,
+                    errno, strerror(errno));
+        }
+        event_set[Tst_count].mask = IN_MOVE_SELF;
+        strcpy(event_set[Tst_count].name, "");
+        Tst_count++;
+
+        if (Tst_count != TST_TOTAL) {
+            tst_brkm(TBROK, cleanup, 
+                "Tst_count and TST_TOTAL are not equal");
+        }
+        
+        Tst_count = 0;
+
+
+        char event_buf[EVENT_BUF_LEN];
+        int len, i = 0, test_num = 0;
+        if ((len = read(fd_notify, event_buf, EVENT_BUF_LEN)) < 0) {
+            tst_brkm(TBROK, cleanup,
+                "read(%d, buf, %d) Failed, errno=%d : %s",
+                fd_notify, EVENT_BUF_LEN, 
+                errno, strerror(errno));
+
+        }
+
+        while (i < len) {
+            struct inotify_event *event;
+            event = (struct inotify_event *) &event_buf[i];
+            if (test_num >= TST_TOTAL){
+                tst_resm(TFAIL, "get unnecessary event: "
+                    "wd=%d mask=%x cookie=%u len=%u"
+                    "name=\"%s\"",event->wd, event->mask,
+                    event->cookie, event->len, 
+                            event->name);
+
+            } else     if ((event_set[test_num].mask == event->mask) &&
+                    (! strncmp( event_set[test_num].name,
+                        event->name, event->len))) {
+                tst_resm(TPASS, "get event: wd=%d mask=%x" 
+                        " cookie=%u len=%u name=\"%s\"",
+                        event->wd, event->mask,
+                        event->cookie, event->len, 
+                        event->name);
+
+            } else {
+                tst_resm(TFAIL, "get event: wd=%d mask=%x "
+                    "(expected %x) cookie=%u len=%u "
+                    "name=\"%s\" (expected \"%s\") %d",
+                    event->wd, event->mask,    
+                    event_set[test_num].mask,
+                    event->cookie, event->len, event->name,
+                    event_set[test_num].name, 
+                    strcmp(event_set[test_num].name, 
+                        event->name));
+            }
+            test_num++;
+            i += EVENT_SIZE + event->len;
+        }
+
+        for (; test_num<TST_TOTAL; test_num++){
+            tst_resm(TFAIL, "don't get event: mask=%x ",
+                    event_set[test_num]);
+
+        }
+
+    }    /* End for TEST_LOOPING */
+
+    /*
+     * cleanup and exit
+     */
+    cleanup();
+
+    return 0;
+}    /* End main */
+
+/*
+ * setup() - performs all ONE TIME setup for this test.
+ */
+void setup(){
+    /* capture signals */
+    tst_sig(NOFORK, DEF_HANDLER, cleanup);
+
+    /* Pause if that option was specified */
+    TEST_PAUSE;
+
+    /* make a temp directory and cd to it */
+    tst_tmpdir();
+
+    if ((fd_notify = inotify_init ()) < 0) {
+        if( errno == ENOSYS ){
+            tst_resm(TCONF, "inotify is not configured in this kernel.");
+            tst_resm(TCONF, "Test will not run.");
+            tst_exit();
+        }else{
+            tst_brkm(TBROK, cleanup,
+                "inotify_init () Failed, errno=%d : %s",
+                errno, strerror(errno));
+        }
+    }
+
+    if ((wd = inotify_add_watch (fd_notify, ".", IN_ALL_EVENTS)) < 0){
+        tst_brkm(TBROK, cleanup,
+                "inotify_add_watch (%d, \".\", IN_ALL_EVENTS)" 
+                "Failed, errno=%d : %s",
+                fd_notify, errno, strerror(errno));
+    };
+
+}    /* End setup() */
+
+
+/*
+ * cleanup() - performs all ONE TIME cleanup for this test at
+ *        completion or premature exit.
+ */
+void cleanup(){
+    if (inotify_rm_watch(fd_notify, wd) < 0) {
+        tst_resm(TWARN,    "inotify_rm_watch (%d, %d) Failed,"
+                "errno=%d : %s",
+                fd_notify, wd, errno, strerror(errno));
+
+    }
+
+    if (close(fd_notify) == -1) {
+        tst_resm(TWARN, "close(%d) Failed, errno=%d : %s", 
+                fd_notify, errno, strerror(errno));
+    }
+
+
+    /*
+     * print timing stats if that option was specified.
+     * print errno log if that option was specified.
+     */
+    TEST_CLEANUP;
+
+    /* Remove tmp dir and all files in it */
+    tst_rmdir();
+
+    /* exit with return code appropriate for results */
+    tst_exit();
+}    /* End cleanup() */
diff -uprN ltp.old/testcases/kernel/syscalls/inotify/Makefile 
ltp/testcases/kernel/syscalls/inotify/Makefile
--- ltp.old/testcases/kernel/syscalls/inotify/Makefile  1970-01-01 
03:00:00.000000000 +0300
+++ ltp/testcases/kernel/syscalls/inotify/Makefile      2007-05-22 
17:23:30.000000000 +0400
@@ -0,0 +1,31 @@
+#
+#  Copyright (c) SWSoft, 2007
+#
+#  This program is free software;  you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY;  without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
+#  the GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program;  if not, write to the Free Software
+#  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+
+CFLAGS += -I../../../../include -Wall --static
+LDLIBS += -L../../../../lib -lltp
+
+SRCS    = $(wildcard *.c)
+TARGETS = $(patsubst %.c,%,$(SRCS))
+
+all: $(TARGETS)
+
+install:
+       @set -e; for i in $(TARGETS); do ln -f $$i ../../../bin/$$i ; done
+
+clean:
+       rm -f $(TARGETS)
diff -uprN ltp.old/testcases/kernel/syscalls/read/Makefile~ 
ltp/testcases/kernel/syscalls/read/Makefile~
--- ltp.old/testcases/kernel/syscalls/read/Makefile~    1970-01-01 
03:00:00.000000000 +0300
+++ ltp/testcases/kernel/syscalls/read/Makefile~        2006-10-18 
00:29:00.000000000 +0400
@@ -0,0 +1,31 @@
+#
+#  Copyright (c) International Business Machines  Corp., 2001
+#
+#  This program is free software;  you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY;  without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
+#  the GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program;  if not, write to the Free Software
+#  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+
+CFLAGS += -I../../../../include -Wall
+LDLIBS += -L../../../../lib -lltp
+
+SRCS    = $(wildcard *.c)
+TARGETS = $(patsubst %.c,%,$(SRCS))
+
+all: $(TARGETS)
+
+install:
+       @set -e; for i in $(TARGETS); do ln -f $$i ../../../bin/$$i ; done
+
+clean:
+       rm -f $(TARGETS)
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to